Появилась задача — копирование завода/склада отправителя из заказа на поставку. При создании документа на поступление материала со ссылкой на документ отпуска автоматически проставлялся вид движения 351 и поля завод/склад отправителя был пустым.
Консультант не нашел стандартного способа заполнения данных полей и правильного вида движения, поэтому пришлось программировать.
Прежде всего в отладке обнаружил подходящую точку — Метод defaults_merge класса lcl_migo_kernel в инклуде LMIGOKD3. В конец этого метода добавил код
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
DATA: lv_werks TYPE werks_d, lv_lgort TYPE lgort_d. " Идут проверки всякие IF cs_goitem-bwart = '351' and " на вид движения sy-cprog = 'SAPLMIGO' and " на MIGO GODYNPRO-action = 'A01' " На документ поступления * and i_refdoc = 'R02'. . " Смотрим соответствующую позицию заказа на поставку SELECT SINGLE ekpo~werks ekpo~lgort INTO (lv_werks, lv_lgort) FROM ekpo WHERE ebeln = cs_goitem-ebeln AND ebelp = cs_goitem-EBELP. IF sy-subrc = 0. " И копируем данные в поле на экране cs_goitem-bwart = '101'. cs_goitem-werks = lv_werks. cs_goitem-lgort = lv_lgort. ENDIF. ENDIF. |
Может быть конечно было стандартное решение, но из-за необходимости срочного решения пришлось остановиться на этом