Текущее время: Пн, июн 30 2025, 01:20

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Как считать данные меню "Выбор" Планирования вручную в ФМ
СообщениеДобавлено: Пт, дек 26 2008, 12:34 
Начинающий
Начинающий

Зарегистрирован:
Чт, дек 25 2008, 08:59
Сообщения: 7
Обращаюсь с уважениям к профессионалам. Заранее блогадарю за совет или подсказку в данном направлении.
Как считать данные из

1) запускаю транзакцию bps0
2) Выбираю Область планирования - Базис "ZBKTG" - Бюджет
3) Выбираю вкладыш ПЕРЕМЕННЫЕ
4) Выбираю переменную "ZFVFM" и указываю фунциональный модуль "ZBW_VERS_MAX_2"
5) Затем данный ФМ я отработал данные формируются.

И так иду дальше
1) Выбрал область планирования "ZBKTG"
2) Выбрал уровень планирования "ZL311"
3) Выбрал пакет планирования "ZPAC111", смотрю в меню "ВЫБОР" там пречисленны признаки с данными

Выбор:
АБП K0015
Календарный месяц 1 12
Актуальность версии 1
Вариант ФинансГода K4
Версия бюджета КТГ ZFVERB
Версия согласования ZFVFM
Единица измерения ТМ3
Календарный год ZPCALYEA
Валюта KZT
Компания V003
Разрез деятельности
Тип значения 10
Финансовый год


4) Выбираю фунцию планирования "ZF1" и "Планирования вручную" . После чего начинает отрабатывать фунциональный модуль "ZBW_VERS_MAX_2".
Вопрос. Как при отработке считать данные или передать в ФМ "ZBW_VERS_MAX_2" из меню "Выбор" к примеру "Вариант ФинансГода = K4".

Тоесть при отработке ФМ ZBW_VERS_MAX_2 мне необхадима данные из меню "Выбор" с данными для выборки данных по определенному условию.

В этом ФМ я получил данные I_AREA, I_VARIABLE, и др.
но так же мне нужны данные из меню "Выбор" при нажании "Планирования вручную".
Или если ФМ который показывает данные параметры, чтобы я смог его использовать в ZBW_VERS_MAX_2

FUNCTION ZBW_VERS_MAX_2.
*"----------------------------------------------------------------------
*"*"Локальный интерфейс:
*" IMPORTING
*" REFERENCE(I_AREA) TYPE UPC_Y_AREA
*" REFERENCE(I_VARIABLE) TYPE UPC_Y_VARIABLE
*" REFERENCE(I_CHANM) TYPE UPC_Y_CHANM
*" REFERENCE(ITO_CHANM) TYPE UPC_YTO_CHA
*" EXPORTING
*" REFERENCE(ETO_CHARSEL) TYPE UPC_YTO_CHARSEL
*"----------------------------------------------------------------------

* Change constant according to your needs
CONSTANTS:
L_SOURCE_VAR TYPE UPC_Y_VARIABLE VALUE 'ZYEAR',
L_SOURCE_AREA TYPE UPC_Y_AREA VALUE 'ZABKTG',
L_USE_RESTRICTED_VALUES TYPE BOOLE-BOOLE VALUE 'X',
L_BUFFER_CALL TYPE BOOLE-BOOLE VALUE 'X'.

DATA:
L_SUBRC LIKE SY-SUBRC,
LS_RETURN LIKE BAPIRET2,
L_TYPE LIKE UPC_VAR-VARTYPE,
LTO_VARSEL_ALL TYPE UPC_YTO_CHARSEL,
LTO_VARSEL TYPE UPC_YTO_CHARSEL,
LTO_VAR TYPE UPC_YTO_CHARSEL,
LTO_CHANM TYPE UPC_YTO_CHA.

DATA: BEGIN OF ROLE OCCURS 0.
INCLUDE STRUCTURE AGR_USERS.
DATA: END OF ROLE.

* ----------------------------------------------------------------------
* Example 1: determine the next year
* Assumptions:
* - we have only a single year in the selection
* - the variable is of type characteristic
* ----------------------------------------------------------------------

DATA:
LV_AREA TYPE UPC_Y_AREA,
LS_CHARSEL TYPE UPC_YS_CHARSEL,
LS_MCB_00 TYPE UPA_MCB_00,
L_NEXT_YEAR(4) TYPE N, XL_NEXT_YEAR(4) TYPE N.

CONSTANTS:
LC_CHANM TYPE UPC_Y_CHANM VALUE 'ZCHVERS',
LC_SEQNO TYPE UPC_Y_SEQNO VALUE '0000',
LC_SIGN TYPE UPC_Y_SIGN VALUE 'I',
LC_OPTION TYPE UPC_Y_OPTION VALUE 'EQ'.

data: LS_CHARSEL1 TYPE UPC_YS_CHARSEL .

DATA: BEGIN OF WA,
VER LIKE /BIC/SZCHVERS-/BIC/ZCHVERS,
END OF WA.

DATA: ITAB1 LIKE WA OCCURS 0 WITH HEADER LINE,
N(2) TYPE N, TXT50(3), MY_X(10).
DATA: LETO_CHAVL TYPE UPC_YTO_CHAVL, LTO_CHASEL TYPE UPC_YTO_CHASEL,
LTO_CHASEL_WA TYPE UPC_YS_CHASEL, LTO_ATTR_CHASEL TYPE UPC_YT_CHARNG,
LTO_ATTR_CHASEL_WA TYPE UPC_YS_CHARNG.
CONSTANTS:


XL_SOURCE_VAR TYPE UPC_Y_VARIABLE VALUE 'ZFVERB',
XXL_SOURCE_VAR TYPE UPC_Y_VARIABLE VALUE 'ZPCALYEA',
SOURCE_ZABP TYPE UPC_Y_VARIABLE VALUE 'ZABP',
XL_BUFFER_CALL TYPE BOOLE-BOOLE VALUE 'X'.


DATA: XL_SUBRC LIKE SY-SUBRC, XLS_RETURN LIKE BAPIRET2,
XL_TYPE LIKE UPC_VAR-VARTYPE, XLTO_VARSEL_ALL TYPE UPC_YTO_CHARSEL,
XLTO_VARSEL TYPE UPC_YTO_CHARSEL, XLTO_VAR TYPE UPC_YTO_CHARSEL,
XLTO_CHANM TYPE UPC_YTO_CHA, XXLTO_VARSEL_ALL LIKE LINE OF XLTO_VARSEL_ALL,
ZLTO_VARSEL_ALL LIKE LINE OF XLTO_VARSEL_ALL,
MY_TN LIKE /BIC/SZBUDGETV-/BIC/ZBUDGETV, FL LIKE LC_SEQNO,
BEGIN OF XXXLTO_VARSEL_ALL OCCURS 0.
INCLUDE STRUCTURE /BIC/SZBUDGETV.
DATA: END OF XXXLTO_VARSEL_ALL.
*break-point.
MY_X = '#'.
SELECT * INTO TABLE ROLE FROM AGR_USERS WHERE UNAME = SY-UNAME . "'SY-UNAME . ""'BW_USER2' . "SY-UNAME . "'BW_USER1' . " . " 'BW_USER2'
SORT ROLE BY AGR_NAME.
LOOP AT ROLE.
IF ROLE-AGR_NAME(12) = 'ZBWF_KTG_ABP'.
CONCATENATE 'K0' ROLE-AGR_NAME+12(3) INTO MY_X .
EXIT.
ENDIF.
ENDLOOP.

*----------------
DATA:
E_SUBRCx LIKE SY-SUBRC,
ES_RETURNx LIKE BAPIRET2,
E_TYPEx LIKE UPC_VAR-VARTYPE,
E_USER_VALUESx LIKE UPC_VAR-USERSEL,
E_USER_RESTRICTIONx LIKE UPC_VAR-USERRESTRICTION,
E_NUMVALUEx LIKE UPC_VAR_NUM_SEL-NUMVALUE,
ES_HIESELx LIKE UPC_YS_API_HIESEL,
ES_HIEKEYx LIKE UPC_YS_HIE_KEY,
E_NOVALUEx LIKE UPC_VAR_NUM_SEL-NO_VALUE,

ETK_CHAx like UPC_YS_CHA OCCURS 0 WITH HEADER LINE,
ETK_VARSEL_ALLx LIKE UPC_YS_API_VARSEL OCCURS 0 WITH HEADER LINE,
ETK_VARSELx LIKE UPC_YS_API_VARSEL OCCURS 0 WITH HEADER LINE,
ETK_HIESEL_ALLx LIKE UPC_YS_API_HIESEL OCCURS 0 WITH HEADER LINE,
ETK_HIEDEP_ALLx LIKE UPC_YS_API_HIEDEP OCCURS 0 WITH HEADER LINE,
ETK_HIEDEPx LIKE UPC_YS_API_HIEDEP OCCURS 0 WITH HEADER LINE.


CALL FUNCTION 'Z_VARIABLE_GET_DETAIL'
EXPORTING
I_AREA = I_AREA
I_VARIABLE = XXL_SOURCE_VAR
I_BUFFER = XL_BUFFER_CALL
IMPORTING
E_SUBRC = XL_SUBRC
ES_RETURN = XLS_RETURN
E_TYPE = XL_TYPE
ETO_VARSEL_ALL = XLTO_VARSEL_ALL
ETO_VARSEL = XLTO_VARSEL
ETO_CHANM = XLTO_CHANM.
break-point.
IF L_SUBRC <> 0.
MESSAGE I136(UPC_FW) WITH XXL_SOURCE_VAR.
* Values of variable &1 cannot be determined
EXIT.
ENDIF.

READ TABLE XLTO_VARSEL INDEX 1 INTO ZLTO_VARSEL_ALL.

CALL FUNCTION 'Z_VARIABLE_GET_DETAIL'
EXPORTING
I_AREA = I_AREA
I_VARIABLE = XL_SOURCE_VAR
I_BUFFER = XL_BUFFER_CALL
IMPORTING
E_SUBRC = XL_SUBRC
ES_RETURN = XLS_RETURN
E_TYPE = XL_TYPE
ETO_VARSEL_ALL = XLTO_VARSEL_ALL
ETO_VARSEL = XLTO_VARSEL
ETO_CHANM = XLTO_CHANM.

IF L_SUBRC <> 0.
MESSAGE I136(UPC_FW) WITH XL_SOURCE_VAR.
* Values of variable &1 cannot be determined
EXIT.
ENDIF.

*read table xlto_varsel_all index 1 into xxlto_varsel_all.
READ TABLE XLTO_VARSEL INDEX 1 INTO XXLTO_VARSEL_ALL.

SELECT /BIC/ZBUDGETV FROM /BIC/SZBUDGETV
INTO CORRESPONDING FIELDS OF TABLE XXXLTO_VARSEL_ALL
WHERE /BIC/ZBUDGETV = XXLTO_VARSEL_ALL-LOW AND /BIC/ZBUDGETV NE SPACE.

LOOP AT XXXLTO_VARSEL_ALL.
MY_TN = XXXLTO_VARSEL_ALL-/BIC/ZBUDGETV.
SELECT MAX( V~/BIC/ZCHVERS ) INTO ITAB1-VER
FROM ( ( ( ( /BIC/SZCHVERS AS V

INNER JOIN /BIC/DZBPLAN2 AS U ON V~SID = U~SID_ZCHVERS
INNER JOIN /BIC/FZBPLAN AS S ON U~DIMID = S~KEY_ZBPLAN2

INNER JOIN /BIC/DZBPLAN2 AS P ON S~KEY_ZBPLAN2 = P~DIMID
INNER JOIN /BIC/SZBUDGETV AS Q ON P~SID_ZBUDGETV = Q~SID AND Q~/BIC/ZBUDGETV = MY_TN

INNER JOIN /BIC/DZBPLAN1 AS T ON S~KEY_ZBPLAN1 = T~DIMID
INNER JOIN /BIC/SZABP AS Z ON T~SID_ZABP = Z~SID AND Z~/BIC/ZABP = MY_X

JOIN /BIC/DZBPLANT AS A ON A~DIMID = S~KEY_ZBPLANT
JOIN /BI0/SCALYEAR AS B ON A~SID_0CALYEAR = B~SID AND B~CALYEAR = ZLTO_VARSEL_ALL-LOW ) ) ) ).
* HAVING MAX( V~/BIC/ZCHVERS ) > 100.

* append itab1.
*Если неудачно то ищем в таблице E....
IF SY-SUBRC <> 0.
SELECT MAX( V~/BIC/ZCHVERS ) INTO ITAB1-VER
FROM ( ( ( ( /BIC/SZCHVERS AS V

INNER JOIN /BIC/DZBPLAN2 AS U ON V~SID = U~SID_ZCHVERS
INNER JOIN /BIC/EZBPLAN AS S ON U~DIMID = S~KEY_ZBPLAN2

INNER JOIN /BIC/DZBPLAN2 AS P ON S~KEY_ZBPLAN2 = P~DIMID
INNER JOIN /BIC/SZBUDGETV AS Q ON P~SID_ZBUDGETV = Q~SID AND Q~/BIC/ZBUDGETV = MY_TN

INNER JOIN /BIC/DZBPLAN1 AS T ON S~KEY_ZBPLAN1 = T~DIMID
INNER JOIN /BIC/SZABP AS Z ON T~SID_ZABP = Z~SID AND Z~/BIC/ZABP = MY_X

JOIN /BIC/DZBPLANT AS A ON A~DIMID = S~KEY_ZBPLANT
JOIN /BI0/SCALYEAR AS B ON A~SID_0CALYEAR = B~SID AND B~CALYEAR = ZLTO_VARSEL_ALL-LOW ) ) ) ).
* HAVING MAX( V~/BIC/ZCHVERS ) > 100.
ENDIF.

*break-point.


ITAB1-VER = ITAB1-VER.

* ENDIF.

*read table itab1 index 1.
*LOOP AT itab1.

N = ITAB1-VER.
* N = N + 1.
ADD 1 TO FL.
* Собрать версии
LS_CHARSEL-CHANM = LC_CHANM.
LS_CHARSEL-SIGN = LC_SIGN.
LS_CHARSEL-OPT = LC_OPTION.
LS_CHARSEL-SEQNO = LC_SEQNO + FL.
LS_CHARSEL-LOW = N.
LS_CHARSEL-HIGH = SPACE.

INSERT LS_CHARSEL INTO TABLE ETO_CHARSEL.

ENDLOOP.

ENDFUNCTION.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как считать данные меню "Выбор" Планирования вручную в ФМ
СообщениеДобавлено: Пт, дек 26 2008, 12:45 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пн, дек 08 2008, 19:17
Сообщения: 92
Откуда: Москва
Пол: Мужской
Группа функций UPB_PM_VARIABLE должна тебе помочь.

_________________
В смысле осмысления бессмысленности, смысл тоже имеет определенную осмысленность.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как считать данные меню "Выбор" Планирования вручную в ФМ
СообщениеДобавлено: Пт, дек 26 2008, 13:31 
Начинающий
Начинающий

Зарегистрирован:
Чт, дек 25 2008, 08:59
Сообщения: 7
Транзакция , bps0
Уточняю есть Область планирования - Базис. В одну из переменных подставляю фунциональный модуль "ZBW_VERS_MAX_2".
При активизации планировании в ручную необхадима в фм "ZBW_VERS_MAX_2" считать данные из меню "Выбор" (признаки и их значения) принадлежащих к данной Пакету планирования.
Подскажите ПЖ таблицу или фунциональный модуль позваляющий считать данную информаци.
Заранее спасибо. с уважениям к ВАМ


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как считать данные меню "Выбор" Планирования вручную в ФМ
СообщениеДобавлено: Ср, дек 31 2008, 06:58 
Начинающий
Начинающий

Зарегистрирован:
Чт, дек 25 2008, 08:59
Сообщения: 7
Решения я сам нашел ответ такой. Всем спасибо за душевную подержеку

* - Для опредедения Пакет планирования использую фм UPC_FW_GET_STATUS
DATA ls_status TYPE upc_ys_fw_status.
data: GUIDx like UPC_PACKAGE-GUID.
CALL FUNCTION 'UPC_FW_GET_STATUS'
IMPORTING
es_status = ls_status.

select single GUID into GUIDx
from UPC_PACKAGE where AREA = ls_status-AREA and
PLEVEL = ls_status-PLEVEL and PPACKAGE = ls_status-PACKAGE .
*Нахожу значания признака
select single low into MY_X
from UPC_OPTIOS where GUID = GUIDx and FIELDNAME = 'ZABP' .


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB