SAP GUI 7.30 Patch 4
Adobe LiveCycle Designer 10
Adobe LiveCycle Designer 10 Patch 1
пятница, 17 мая 2013 г.
вторник, 12 февраля 2013 г.
Заполнение LIKP-TDDAT при создании поставки
Создаем поставки с помощью ФМ BAPI_DELIVERYPROCESSING_EXEC.
Кроме всего прочего пытаемся прописать в поставке дату планирования транспортировки LIKP-TDDAT. В параметрах ФМ она лежит в поле TRANSP_PLAN_DATE в таблице, которая передается как параметр REQUEST.
Проблема в том, что ФМ отрабатывает, поставка создается, но поле TDDAT пустое.
Исследования показали, что проблема комплексная, и нужно обратить внимание как минимум на две вещи:
Кроме всего прочего пытаемся прописать в поставке дату планирования транспортировки LIKP-TDDAT. В параметрах ФМ она лежит в поле TRANSP_PLAN_DATE в таблице, которая передается как параметр REQUEST.
Проблема в том, что ФМ отрабатывает, поставка создается, но поле TDDAT пустое.
Исследования показали, что проблема комплексная, и нужно обратить внимание как минимум на две вещи:
- Кроме заполнения поля TRANSP_PLAN_DATE, которое потом запишется в LIKP-TDDAT, при вызове ФМ необходимо заполнять также поля MAT_AVAILABIL_DATE, LOADING_DATE, GOODS_ISSUE_DATE, DELIVERY_DATE. В принципе есть и другие варианты - например когда заполняются TIMESTAMPы (подробнее можно посмотреть по исходному коду в form MATCH_INTERFACE_DATES_MM в include LV50R_CREAF30). Как альтернативу можно использовать user-exit EXIT_SAPLV50R_CREA_003 и дописать там нужное.
- В таблице TVCPL по виду поставки LFART, виду заказа AUART (определяется по виду поставки из таблицы TVLK) и пустому типу позиции образца (поле PSTYV) выбирается поле GRUAK "Групповое условие копирования данных VBAK". Значение этого поля используется при формировании имени подпрограммы, которая будет вызвана из программы SAPLV50S по шаблону DATEN_KOPIEREN_<GRUAK> для копирования данных в поставку. Таким образом, если в GRUAK было 201, то вызовется подпрограмма DATEN_KOPIEREN_201. От подпрограммы зависит то, какие поля будут скопированы в поставку. В частности, копирование TDDAT поддерживают только 301 и 311 подпрограммы.
понедельник, 11 февраля 2013 г.
BOPF Determination
Если не отрабатывает ваш Determination, поиск причин можно начинать из метода DO_DETERMINATIONS класса /BOBF/CL_FRW. Внешние точки остановки там срабатывают.
понедельник, 4 февраля 2013 г.
Конфигурация BOPF
Для конфигурации объектов и ваших расширений в в Business Object Processing Framework служит транзакция /BOBF/CONF_UI. Но по умолчанию она открывается в режиме просмотра, и любые кнопки для изменения, в том числе переключения режима, недоступны. Чтобы их активировать необходимо в окне команд ввести DEBUG и затем во всплывшем окне подтвердить свое намерение.
четверг, 24 января 2013 г.
Отправка EMAIL. Подтверждения доставки и прочтения
Программно Email из SAP удобно создавать и отправлять с помощью Business Communication Service. Примеры можно найти в программах BCS_EXAMPLE_*.
По умолчанию к письмам почему-то добавляются запросы о доставке и прочтении. Иногда это совсем не нужно. Отменить их можно так:
lo_request->SET_STATUS_ATTRIBUTES( I_REQUESTED_STATUS = 'E' ). ,
где lo_request - экземпляр класса CL_BCS.
По умолчанию к письмам почему-то добавляются запросы о доставке и прочтении. Иногда это совсем не нужно. Отменить их можно так:
lo_request->SET_STATUS_ATTRIBUTES( I_REQUESTED_STATUS = 'E' ). ,
где lo_request - экземпляр класса CL_BCS.
Wait
Команда wait up to N seconds в ABAP теоретически может принимать в качестве N вещественные числа. Например, так:
wait up to '0.1' seconds.
Но на практике оказывается, что она их округляет. Таким образом, wait up to '0.5' seconds соответствует 1 секунде, а wait up to '0.4' seconds - 0 секунд. С одной и более секунд понятно, а вот 0 секунд на первый взгляд бессмысленны, но это не так. Например, если вы запустили новую задачу с помощью CALL FUNCTION '...' STARTING NEW TASK и в цикле ожидаете ее завершения, чтобы получить результаты, то пока вы не вызовите wait, у вас не отработает та форма или метод класса, которую/который вы назначили как callback для вашей задачи. Поэтому в цикле ожидания имеет смысл вызывать именно wait up to 0 seconds, потому что даже целая секунда в данном случае - это много.
wait up to '0.1' seconds.
Но на практике оказывается, что она их округляет. Таким образом, wait up to '0.5' seconds соответствует 1 секунде, а wait up to '0.4' seconds - 0 секунд. С одной и более секунд понятно, а вот 0 секунд на первый взгляд бессмысленны, но это не так. Например, если вы запустили новую задачу с помощью CALL FUNCTION '...' STARTING NEW TASK и в цикле ожидаете ее завершения, чтобы получить результаты, то пока вы не вызовите wait, у вас не отработает та форма или метод класса, которую/который вы назначили как callback для вашей задачи. Поэтому в цикле ожидания имеет смысл вызывать именно wait up to 0 seconds, потому что даже целая секунда в данном случае - это много.
пятница, 28 сентября 2012 г.
SAP GUI 7.30 Patch 1
21 сентября вышел Patch 1 для SAP GUI 7.30. Скачать можно с официального сайта или отсюда
Подписаться на:
Сообщения (Atom)