Sapforum.Biz

Инструменты => ABAP - Инструментальные средства => Тема розпочата: sergiucz від Вересень 30, 2012, 06:19:13 ПП

Назва: Как изменить BKPF-BKTXT в созданном документе
Відправлено: sergiucz від Вересень 30, 2012, 06:19:13 ПП
Добрый день господа гуру!
Появилась задача при выводе на печать Налог Наклад. В это поле BKPF-BKTXT вставлять ИДН номер накладной .
То есть , каждый лист имеет свои уникальный номер.
И он известен когда дается на печать.

Каким способом мне надо изменить это поле в таблице BKPF.

Заранее спасибо
Назва: Re: Как изменить BKPF-BKTXT в созданном документе
Відправлено: Dmitriy від Вересень 30, 2012, 06:47:11 ПП
Цитата: sergiucz від Вересень 30, 2012, 06:19:13 ПП
Добрый день господа гуру!
Появилась задача при выводе на печать Налог Наклад. В это поле BKPF-BKTXT вставлять ИДН номер накладной .
То есть , каждый лист имеет свои уникальный номер.
И он известен когда дается на печать.

Каким способом мне надо изменить это поле в таблице BKPF.

Заранее спасибо
Самый простой способ, это пакетный ввод на тр. FB02. Процедуру запускайте по факту успешной печати, допустим.
Назва: Re: Как изменить BKPF-BKTXT в созданном документе
Відправлено: sergiucz від Вересень 30, 2012, 07:39:21 ПП
Цитата: Dmitriy від Вересень 30, 2012, 06:47:11 ПП
Самый простой способ, это пакетный ввод на тр. FB02. Процедуру запускайте по факту успешной печати, допустим.

спасибо за ответ !!
Вопрос решил . Нашел
Нашел


CALL FUNCTION 'FI_HEADER_UPDATE'
TABLES
t_bkpf =
.
Назва: Re: Как изменить BKPF-BKTXT в созданном документе
Відправлено: Dmitriy від Вересень 30, 2012, 11:04:36 ПП
Цитата: sergiucz від Вересень 30, 2012, 07:39:21 ПП
спасибо за ответ !!
Вопрос решил . Нашел
Нашел
CALL FUNCTION 'FI_HEADER_UPDATE'
TABLES
t_bkpf = .
Вы уверены? А что там внутри этого ФМ и вид у него (в свойствах) какой? Поле BKTXT не только в BKPF, посмотрите по ЭД.

P.S. В опциях отправки сообщения используйте тег "код", если таковой требуется, кнопка "#".
Назва: Re: Как изменить BKPF-BKTXT в созданном документе
Відправлено: Uukrul від Жовтень 02, 2012, 12:41:15 ДП
Переведу ответ Димы если кто не понял...
Цитата: sergiucz від Вересень 30, 2012, 07:39:21 ПП
спасибо за ответ !!
Вопрос решил . Нашел
Нашел
Ничего вы не нашли, и использовать данный ФМ категорически запрещено для тех целей которые вы собрались.
Цитата: sergiucz від Вересень 30, 2012, 07:39:21 ПП
CALL FUNCTION 'FI_HEADER_UPDATE'
TABLES
t_bkpf =
Это модуль обновления, вызываемый в контексте стандартной работы обновления данных при проводке документов, там в тексте только вот это:

FUNCTION FI_HEADER_UPDATE.
*"----------------------------------------------------------------------
*"*"Verbuchungsfunktionsbaustein:
*"
*"*"Lokale Schnittstelle:
*"       TABLES
*"              T_BKPF STRUCTURE  BKPF
*"----------------------------------------------------------------------


  UPDATE BKPF FROM TABLE T_BKPF.

  IF SY-SUBRC NE 0.
    MESSAGE A247(FQ) WITH 'BKPF'.
  ENDIF.

ENDFUNCTION.

Так что ничего вы не нашли, это прямой апдейт таблиц, которым может пользоваться только стандартный функционал системы. Я в FI не силен, но кажется там BAPI подходящей нет и придется воспользоватся предложением Дмитрия, по поводу формирования пакетного ввода.
Назва: Re: Как изменить BKPF-BKTXT в созданном документе
Відправлено: Dmitriy від Жовтень 02, 2012, 01:24:21 ДП
Спасибо за код ФМ, нет под рукой системы. Подозрение закралось по названию и усилилось после поиска в гугле.:)
Назва: Re: Как изменить BKPF-BKTXT в созданном документе
Відправлено: sergiucz від Жовтень 09, 2012, 11:24:21 ДП
Добрый день .
Спасибо всем за интерес .
Я делаю так .

      SELECT * INTO  CORRESPONDING FIELDS OF TABLE lt_bkpf FROM bkpf WHERE  belnr EQ pa_belnr AND bukrs EQ pa_bukrs.
      READ TABLE lt_bkpf INDEX 1 .
      lt_bkpf-bktxt = pa_fnum.
      MODIFY lt_bkpf INDEX 1.

      CALL FUNCTION 'FI_HEADER_UPDATE'
        TABLES
          t_bkpf = lt_bkpf.

я же не меняю ничего кроме  bkpf-bktxt
Пока все работает нормально . Глюков нет

Но если говорите что лучше через пакетник то я переделаю программу .
Назва: Re: Как изменить BKPF-BKTXT в созданном документе
Відправлено: e.gorscov від Жовтень 09, 2012, 11:27:10 ДП
Точно  такая же проблема есть  и для MKPF. Ее  можно  обновлять  бапихой?
Назва: Re: Как изменить BKPF-BKTXT в созданном документе
Відправлено: sergiucz від Жовтень 09, 2012, 01:11:34 ПП
Цитата: Dmitriy від Жовтень 02, 2012, 01:24:21 ДП
Спасибо за код ФМ, нет под рукой системы. Подозрение закралось по названию и усилилось после поиска в гугле.:)

Да просто сидели и ждали машины на рампе пока я искал в гоогле.
Просто у нас Тока запустилась система и в тот день я узнал что надо это делать.
Назва: Re: Как изменить BKPF-BKTXT в созданном документе
Відправлено: NachDenken від Жовтень 10, 2012, 01:03:59 ПП
Цитата: sergiucz від Жовтень 09, 2012, 11:24:21 ДП
Добрый день .
Спасибо всем за интерес .
Я делаю так .

      SELECT * INTO  CORRESPONDING FIELDS OF TABLE lt_bkpf FROM bkpf WHERE  belnr EQ pa_belnr AND bukrs EQ pa_bukrs.
      READ TABLE lt_bkpf INDEX 1 .
      lt_bkpf-bktxt = pa_fnum.
      MODIFY lt_bkpf INDEX 1.

      CALL FUNCTION 'FI_HEADER_UPDATE'
        TABLES
          t_bkpf = lt_bkpf.

я же не меняю ничего кроме  bkpf-bktxt
Пока все работает нормально . Глюков нет

Но если говорите что лучше через пакетник то я переделаю программу .
belnr EQ pa_belnr AND bukrs EQ pa_bukrs ключ нужно полный указывать
А может глянуть open FI event какой подходящий есть ?
Назва: Re: Как изменить BKPF-BKTXT в созданном документе
Відправлено: Uukrul від Жовтень 11, 2012, 12:22:07 ДП
Цитата: sergiucz від Жовтень 09, 2012, 11:24:21 ДП
я же не меняю ничего кроме  bkpf-bktxt
Пока все работает нормально . Глюков нет
Ну в таком случае делайте просто: UPDATE BKPF FROM TABLE T_BKPF, хотя нет точнее будет делать UPDATE bkpf SET bktxt = pa_fnum WHERE <ключ записи> и всех делов, это раз.

Теперь два - рекомендации лучших соба-саповодов. НИКОГДА И НИ ПРИ КАКИХ СЛУЧАЯХ НЕ ОБНОВЛЯЙТЕ ДАННЫЕ ТАБЛИЦ СИСТЕМЫ ПРЯМЫМИ АПДЕЙТАМИ (тот 0,0001% когда это нужно сделать, сделайте молча, тихо и никому, никогда об этом не рассказывайте!!!)
Назва: Re: Как изменить BKPF-BKTXT в созданном документе
Відправлено: sergiucz від Жовтень 11, 2012, 09:25:45 ДП
Всем спасибо!
Сделал через пакетник.


Uukrul Спасибо за советы :) Буду строго соблюдать :)


Назва: Re: Как изменить BKPF-BKTXT в созданном документе
Відправлено: Sed0Y від Жовтень 11, 2012, 03:44:14 ПП
Если уже и решили делать UPDATE, то создайте доп структуру в этой таблице с своим полем и обновляйте его, и там где вам нужно подтягивайте это поле....

P.S. В некоторых случаях я так делаю(только не для этой таблицы)...
Назва: Re: Как изменить BKPF-BKTXT в созданном документе
Відправлено: Uukrul від Жовтень 20, 2012, 07:31:45 ПП
Цитата: Sed0Y від Жовтень 11, 2012, 03:44:14 ПП
Если уже и решили делать UPDATE, то создайте доп структуру в этой таблице с своим полем и обновляйте его, и там где вам нужно подтягивайте это поле....
Ну тогда наверное лучше завести свою таблицу, смысла добавлять поле именно в BKPF не вижу, размер таблицы вырастет существенно, так как FI-документов обычно очень много. А стандартные отчеты все равно видеть это поле не будут. Так что смысла особого нет.
Назва: Re: Как изменить BKPF-BKTXT в созданном документе
Відправлено: sergiucz від Жовтень 21, 2012, 02:55:10 ПП
Цитата: Uukrul від Жовтень 20, 2012, 07:31:45 ПП
Ну тогда наверное лучше завести свою таблицу, смысла добавлять поле именно в BKPF не вижу, размер таблицы вырастет существенно, так как FI-документов обычно очень много. А стандартные отчеты все равно видеть это поле не будут. Так что смысла особого нет.

так была поставлена задача с начало.
Мы просто переделали книгу покупок и продаж под себя и сделали все интерфейсы и программы чтоб бралось оттуда тоже.