SAPфорум.RU https://sapboard.ru/forum/ |
|
индикатор подробного текста в производственном заказе AUFK-LTEXT https://sapboard.ru/forum/viewtopic.php?f=13&t=93834 |
Страница 1 из 1 |
Автор: | Andrey Z [ Пн, окт 17 2016, 08:52 ] |
Заголовок сообщения: | индикатор подробного текста в производственном заказе AUFK-LTEXT |
Здравствуйте коллеги! Делаю заказы с помощью бапи BAPI_PRODORD_CREATE, меняю пакетником добавляя компоненты, делаю подробный текст с помощью фм SAVE_TEXT, активирую этот текст пока с помощью прямого апдейта AUFK-LTEXT (для того чтобы он был виден в co02, co03), но этот прямой апдейт совершенно не желателен. Может кто-нибудь сталкивался с этим и знает как обойтись без этого прямого апдейта? Пытался сделать это вот так: Code: MOVE-CORRESPONDING ls_aufk TO ls_caufvd. ls_caufvd-aufnr = p_order_number. ls_caufvd-werks = gs_ap1_aufk-werks. ls_caufvd-ltext = sy-langu. ls_caufvd-txtkz = 'X'. ls_caufvd-txchg = abap_true. CALL FUNCTION 'CO_IH_SET_HEADER' EXPORTING caufvd_imp = ls_caufvd. PERFORM header_update IN PROGRAM saplcoih. но это не помогло. Еще нашел фм-ники где делается этот прямой апдейт, но он для других типов заказов, и вообще чужое не могу менять, проще добиться согласования этого прямого апдейта. |
Автор: | Bimit [ Пн, окт 17 2016, 11:31 ] |
Заголовок сообщения: | Re: индикатор подробного текста в производственном заказе AUFK-LTEXT |
тут и тут читали |
Автор: | Andrey Z [ Пн, окт 17 2016, 13:25 ] |
Заголовок сообщения: | Re: индикатор подробного текста в производственном заказе AUFK-LTEXT |
Bimit написал(а): Приветствую Bimit! По первой ссылке: у коллеги прямой апдейт как у меня сделан прямой модификацией (что по сути одно и тоже) и он испытывает трудности с правильным формированием подробного текста, ему отвечают как сделать этот текст (дают ссылку на то как узнать названия объектов для подробного текста и т.д. и т.п.). У меня этот текст формируется без проблем и отображается, моя проблема в том как обойти прямое вмешательство в таблицу БД. По второй: предлагают вручную через se16 проставить галку что текст существует ну и др., только не как обойтись без прямой правки. Я конечно искал решение в анг. язычном интернете, нашел прям один в один как моя проблема, там предлагали разные вещи, топик-стартер отвечал что это не работает, в итоге пока решение не найдено. |
Автор: | Bimit [ Пн, окт 17 2016, 14:00 ] |
Заголовок сообщения: | Re: индикатор подробного текста в производственном заказе AUFK-LTEXT |
Вообще то я бы сначала посмотрел как работает стандарт, то есть в транзакции co01 как добавляется подробный текст к заказу, экран 260 программа SAPLCOKO1 там есть методы SET и GET там есть поле индикатор подробного текста и индикатор изменения подробного текста TXCHG (ставится если подробный текст не создавался) в коде это вот так выглядит Code: * text update IF gs_textedit_header-tdtxtlines > 1 OR l_string_length > l_ktext_length OR i_caufvd-ltext <> space. CALL FUNCTION 'SAVE_TEXT' EXPORTING header = gs_textedit_header TABLES lines = lt_tlines. i_caufvd-txchg = yx. CALL FUNCTION 'CO_ZV_FLG_COMMIT_TXT_SET'. ENDIF. думаю надо что-то подобное сделать при создании заказа, как в бапишку это добавить не разбирался, пока такого не требовалось, может через пакетник уже после создания или можно сразу при создании, надо проверять |
Автор: | Andrey Z [ Пн, окт 17 2016, 14:26 ] |
Заголовок сообщения: | Re: индикатор подробного текста в производственном заказе AUFK-LTEXT |
так я все эти галки ставлю см. выше в коде (это всё сделано на основе изучения стандарта), единственное в коде не указано вызов фм CO_ZV_FLG_COMMIT_TXT_SET, он был, но все равно не работает это )), этот фм ставит галку которую я и так поставил выше, апдейт aufk все равно не происходит |
Автор: | Bimit [ Вт, окт 18 2016, 10:04 ] |
Заголовок сообщения: | Re: индикатор подробного текста в производственном заказе AUFK-LTEXT |
Думаю надо копать в сторону модуля CO_BT_CAUFV_UPD на вскидку накидал код для обновления, но махом поле LTEXT не заполнилось, надо еще смотреть |
Автор: | Bimit [ Вт, окт 18 2016, 12:11 ] |
Заголовок сообщения: | Re: индикатор подробного текста в производственном заказе AUFK-LTEXT |
Немного пришлось танцы с бубном включать но проблема решаема, у меня получилось добавить метку текста в таблицу AUFK , сам текст не делал, но думаю тоже решаемо |
Автор: | Bimit [ Вт, окт 18 2016, 12:32 ] |
Заголовок сообщения: | Re: индикатор подробного текста в производственном заказе AUFK-LTEXT |
примерно вот так это выглядит Code: DATA: caufvd TYPE caufvd.
DATA: ls_caufv TYPE caufv. DATA: caufvd_loc LIKE caufvd. DATA: l_aufnr_tab TYPE TABLE OF ord_pre WITH HEADER LINE. DATA: lt_caufv_bt TYPE TABLE OF caufvdb. DATA: ls_caufvd TYPE caufvd. DATA: lt_objn TYPE TABLE OF objn_tab WITH HEADER LINE. * Читаем созданный заказ ( заказ создавал вручную через со01, * но можно и бапишкой ) CALL FUNCTION 'CO_DB_HEADER_READ' EXPORTING aufnr = '001303000348' IMPORTING caufvwa = ls_caufv EXCEPTIONS not_found = 1. IF sy-subrc = 0. ENDIF. MOVE-CORRESPONDING ls_caufv TO caufvd. * Блокируем заказ с которым работаем CALL FUNCTION 'ENQUEUE_ESORDER' EXPORTING aufnr = caufvd-aufnr EXCEPTIONS foreign_lock = 1 system_failure = 2 OTHERS = 3. * создаем структуру заголовка заказа CALL FUNCTION 'CO_BT_CAUFVBT_CREATE' EXPORTING caufvd_imp = caufvd. l_aufnr_tab-aufnr = caufvd-aufnr. APPEND l_aufnr_tab. * Добавляем метку блокировки, нужна при сохранении заказа CALL FUNCTION 'CO_BH_ORDER_FLG_ENQUEUE_SET' EXPORTING i_reset = '' TABLES ord_tab = l_aufnr_tab. * Добавляем наши параметры caufvd-ltext = sy-langu. caufvd-txtkz = 'X'. " Этот параметр в ФМе CO_ZV_ORDER_POST присваивается caufvd-txchg = 'X'. caufvd-indbt = 1. * Этот ФМ нужен если создан текст и не закомитен CALL FUNCTION 'CO_ZV_FLG_COMMIT_TXT_SET'. * В этом ФМ,е создаем структуру по которой будет update CALL FUNCTION 'CO_BT_CAUFV_UPD' EXPORTING" flg_no_vbkz = "'X'"YX caufvd_upd = caufvd. * Сохраняем заказ CALL FUNCTION 'CO_ZV_ORDER_POST' EXPORTING commit_flag = 'X' ext_flg = 'X' * flg_act = 'X' * flg_wait = 'X' trans_typ = 'V' no_gui_message = 'X' * req_exists = 'X' no_dialog = 'X' * flg_project_version = 'X' IMPORTING first_aufnr = caufvd-aufnr first_autyp = caufvd-autyp TABLES objn_tab_exp = lt_objn[] EXCEPTIONS no_change = 1 update_reject = 2 budget_reject = 3 OTHERS = 4. IF sy-subrc <> 0. ENDIF. * Разблокируем заказ CALL FUNCTION 'DEQUEUE_ESORDER' EXPORTING aufnr = caufvd-aufnr. |
Автор: | Andrey Z [ Ср, окт 19 2016, 08:21 ] |
Заголовок сообщения: | Re: индикатор подробного текста в производственном заказе AUFK-LTEXT |
Круто! Это работает! Огромное спасибо! Желаю всех благ! С уважением, Андрей |
Автор: | vlad2mir [ Пт, дек 28 2018, 13:13 ] |
Заголовок сообщения: | Re: индикатор подробного текста в производственном заказе AUFK-LTEXT |
Для цикла не хватает в самом начале: * Очистка буферов. Без них обновление срабатывает, только в первом заказе CALL FUNCTION 'CO_BT_DATA_RESET'. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |