SAPфорум.RU
https://www.sapboard.ru/forum/

как изменить bkpf-xref2_hd
https://www.sapboard.ru/forum/viewtopic.php?f=13&t=96240
Страница 1 из 1

Автор:  maksim2050 [ Чт, мар 29 2018, 22:26 ]
Заголовок сообщения:  как изменить bkpf-xref2_hd

Добрый день.
Хочу изменить значение поля bkpf-xref2_hd . Пакетным вводом дело невозможно осуществить. Т.к. в моей системе в fb02 данное поле настроено быть нередактируемым.
Отсюда и все остальные ФМ , основанные на пакетнике, тоже не прокатывают. Использую ФМ FI_DOCUMENT_CHANGE , но постоянно выскакивают ошибки.
ls_1-fdname = 'XREF2_HD'.
CONCATENATE <fs_bkpf>-belnr <fs_bkpf>-gjahr INTO xref2_hd .
ls_1-newval = xref2_hd.
APPEND ls_1 TO lt_1.
CALL FUNCTION 'FI_DOCUMENT_CHANGE'
EXPORTING
i_awtyp = 'BKPF'
i_bukrs = <fs_bkpf>-bukrs
i_belnr = <fs_bkpf>-belnr
i_gjahr = <fs_bkpf>-gjahr
TABLES
t_accchg = lt_1
EXCEPTIONS
Может кто еще знает способы?

Автор:  NeMurometz [ Пт, мар 30 2018, 06:50 ]
Заголовок сообщения:  Re: как изменить bkpf-xref2_hd

Добрый день!
Расширить BKPF_SUBST + OpenFI 1120

Автор:  Bimit [ Пт, мар 30 2018, 07:14 ]
Заголовок сообщения:  Re: как изменить bkpf-xref2_hd

Вот тут можно почитать viewtopic.php?f=13&t=37046

Автор:  Besa [ Пн, апр 09 2018, 10:42 ]
Заголовок сообщения:  Re: как изменить bkpf-xref2_hd

Цитата:
Т.к. в моей системе в fb02 данное поле настроено быть нередактируемым.

На мой взгляд это не корректный подход.
Если объясните в чем его суть в Вашем случае, возможно посоветую как это обходить, так как сталкивался с похожими не обоснованными кейсами.
Ну и соответственно где это возможно сам использую пакетник на FB02 и другим советую.

Цитата:
Использую ФМ FI_DOCUMENT_CHANGE , но постоянно выскакивают ошибки.

Какие ошибки?

В общем случае, не помню проблем с xref2_hd в FI_DOCUMENT_CHANGE, то есть там жестко прописан перечень полей которые можно менять, с другими полями были проблемы. Просто, как и отметил выше, если надо менять поля программно, то оно должно быть отрыто на редактирование через глобальную настройку.
Вполне вероятно, что внутри FI_DOCUMENT_CHANGE есть проверки на эти настройки, проверьте.

На крайний случай (для полей которые нельзя менять через FI_DOCUMENT_CHANGE и когда пакетник действительно нельзя применять), использовал CHANGE_DOCUMENT, но этот ФМ не самостоятельный, к нему надо вызывать ФМ блокировки фай дока и ФМ по записи change documents(в одном LUW) чтобы зафиксировать изменения в журнале. В целом рабочий вариант, стандарте такое используется.

Автор:  Saperx [ Ср, апр 11 2018, 07:33 ]
Заголовок сообщения:  Re: как изменить bkpf-xref2_hd

Попробуйте запустить ФМ без i_awtyp.
Если этот параметр вам необходим, то тогда укажите ссылку в параметре I_AWREF.
Если не поможет, то выкладывайте ошибку, т.к. по простому "не сработало" не понятно, что и где конкретно не сработало :)

Автор:  Malych [ Пт, май 18 2018, 15:59 ]
Заголовок сообщения:  Re: как изменить bkpf-xref2_hd

FUNCTION ZSET_RFZEI_IN_FI_DOCS.
*"----------------------------------------------------------------------
*"*"Локальный интерфейс:
*" IMPORTING
*" REFERENCE(I_BELNR) TYPE BELNR_D
*" REFERENCE(I_BUKRS) TYPE BUKRS
*" REFERENCE(I_GJAHR) TYPE GJAHR
*" REFERENCE(I_BUZEI) TYPE BUZEI
*" EXPORTING
*" REFERENCE(E_ERROR) TYPE STRING
*"----------------------------------------------------------------------


FREE: E_ERROR.

DATA: ls_ACCCHG TYPE ACCCHG
, lt_ACCCHG TYPE TABLE OF ACCCHG.

FREE: ls_accchg, lt_accchg.
ls_accchg-FDNAME = 'RFZEI '. " техническое поле...
ls_accchg-NEWVAL = ''. " значение
APPEND ls_accchg TO lt_accchg.


WAIT UP TO 1 SECONDS.

CALL FUNCTION 'FI_DOCUMENT_CHANGE'
EXPORTING
I_BUZEI = I_BUZEI
I_BUKRS = I_bukrs
I_GJAHR = I_gjahr
I_BELNR = I_BELNR
TABLES
t_accchg = lt_accchg
EXCEPTIONS
no_reference = 1
no_document = 2
many_documents = 3
wrong_input = 4
overwrite_creditcard = 5
OTHERS = 6.
IF sy-subrc <> 0.
E_ERROR = |Ошибка FI_DOCUMENT_CHANGE RFZEI. sy-subrc={ SY-SUBRC }|.
ENDIF.

Автор:  Yozhhhhh [ Пт, май 18 2018, 23:18 ]
Заголовок сообщения:  Re: как изменить bkpf-xref2_hd

Раз уж оживили некротему.
Совершенно ни к чему использовать стандартные ФМ или писать свои. Пакетный ввод, как уже правильно заметил Besa, абсолютно удобен и обоснован.
Если поле закрыто для изменения, его следует открыть.
Поскольку оно по какой-то причине закрыто, а не просто так, то эту концепцию следует сохранить. Для этого создать элементарный шаг проверки на первом моменте.
В качестве предпосылки использовать имя автора в системе (изменение-то разовое или регулярное - это не важно, явно, что нужно эту опцию дать не всем).
Чтобы постоянно не менять шаг с предпосылкой и не перегенерировать программу в rgugbr00, можно сделать гибкую предпосылку на связку имени пользователя, даты + что-то еще по своему усмотрению. Это позволит открывать допуски в будущем произвольно. Комбинации вести в ракурсе, доступ к которому опять же дать только консультанту.

После того как поле будет открыто и на поле будет действовать проверка, на экране оно станет видимым и автор сможет получать доступ к полю через обычный запуск пакетника в FB02 или в любой другой транзакции, какую он выберет. Все остальные доступа не получат.

ИМХО, но использовать для этих нужд BAPI или другие стандартные ФМ необоснованно и нецелесообразно.

p.s. А если совсем делать рафаэлло, то в предпосылке можно запустить authoruty-check, где проверить полномочия на свой Z-объект, тогда и настроечная таблица/ракурс будут не нужны. В объекте полномочий создать несколько полей, в числе которых с ходу видится имя поля + операция actvt (01 - первичный ввод в пустое поле, 02 - изменение и пр.) Дальше раскидать полномочий и создать гибкую концепцию сегрегации. Заморочиться всего один раз придется, зато потом просто любоваться этой красотой.

Автор:  Besa [ Сб, май 19 2018, 09:38 ]
Заголовок сообщения:  Re: как изменить bkpf-xref2_hd

Yozhhhhh написал:
ИМХО, но использовать для этих нужд BAPI или другие стандартные ФМ необоснованно и нецелесообразно.

Зависит от условий задачи :)
Бывают ситуации когда пакетник нельзя использовать, а документ надо изменить.

Автор:  Yozhhhhh [ Сб, май 19 2018, 14:46 ]
Заголовок сообщения:  Re: как изменить bkpf-xref2_hd

Besa написал:
ависит от условий задачи
Бывают ситуации когда пакетник нельзя использовать, а документ надо изменить.

Ну я потому и написал, что конкретно для этих нужд :D в принципе задача довольно простая.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/