+ Sapforum.Biz » Инструменты » ABAP - Инструментальные средства » SMOD/CMOD - Расширения (Модератор: Dmitriy)Тема:
|- AIST0002 - Поля клиентов в основной записи основного средства S\4HANA 1709




Автор Тема: AIST0002 - Поля клиентов в основной записи основного средства S\4HANA 1709  (Прочитано 261 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 696
  • Reputation Power: 2
  • Uukrul barely matters.Uukrul barely matters.
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Как добавить собственные поля в карточку основного средства, вроде бы информации в интернете полно, так что кому надо найдут. Хотелось бы поделится новыми тараканами, так как старые я так думаю и так всем известны. В общем имеем S\4HANA 1709, последний пакет обновлений 102 (скоро правда 103 обещают). Есть пользовательское расширение и ФМ: EXIT_SAPLAIST_002, который реализует собственно вызов логики расширения. Параметры следующие:
Код: You are not allowed to view links. Register or Login
FUNCTION EXIT_SAPLAIST_002.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*"  IMPORTING
*"     VALUE(I_ANLA) LIKE  ANLA STRUCTURE  ANLA
*"     VALUE(I_ANLV) LIKE  ANLV STRUCTURE  ANLV
*"     VALUE(I_ANLU) LIKE  ANLU STRUCTURE  ANLU
*"     VALUE(I_MODE)
*"     VALUE(I_XSUBNO)
*"     VALUE(I_TRANSV) LIKE  T082I-TRANSV DEFAULT SPACE
*"  TABLES
*"      T_ANLZ STRUCTURE  ANLZ
*"      T_ANLB STRUCTURE  ANLB
*"----------------------------------------------------------------------


INCLUDE ZXAISU03 .


ENDFUNCTION.
В общем все как обычно. Вызов данного экзита происходит в коде модуля: LAISTF93 и сделано это следующим образом:
Код: You are not allowed to view links. Register or Login
*----------------------------------International Development - End
*  Daten für User-Subscreens übergeben
   ls_anlu = xanlu.
   CALL CUSTOMER-FUNCTION '002'
        EXPORTING   i_anla   = anla
                    i_anlv   = anlv
                    i_anlu   = ls_anlu
                    i_mode   = g_trtyp
                    i_xsubno = g_untnr
                    i_transv = ld_transv                 "i note 376248
        TABLES      t_anlz   = xanlz
                    t_anlb   = xanlb.
В общем ничего не предвещало так сказать ..., но проблема таки нашлась, как оказалось переменные таблицы xanlz и xanlb имеют несколько другую длину строки чем указано в принимающем модуле, где стоки должны быть типа ANLZ и  ANLB соответственно. При этом отличия заключаться отсутствии последних полей, точнее поля KZ. которое содержит признак того как обрабатывать записи при сохранении карточки ОС, в данном случае так как это была новая карточка то там стоит признак I - добавление записи. Поэтому такая мелочь в передаче параметров приводит к тому, что после передачи например xanlb и возврата ее назад (с самой таблицей ничего не делалось она там просто сохранилась во внутреннюю  переменную и восстанавливалась обратно), происходило обрезание значений. И по факту, карточка ОС сохранилась без областей оценки, так как терялся флаг обработки областей. Судя по объявлению типов:
Код: You are not allowed to view links. Register or Login
DATA: BEGIN OF xanlb OCCURS 14.
    INCLUDE STRUCTURE ranlb.
DATA: END OF xanlb.
Структура RANLB - Structure of Change Document: Generated by RSSCD000, была модифицирована 11.07.2018. Ну а раньше мы до экзитов в ОС просто не добирались. Разница между этой структурой и принятой таблицей в этих двух полях. Подозреваю что они появились в июле.
Код: You are not allowed to view links. Register or Login
KZ 1 Тип CDCHNGIND
T093BWAERS 1 Тип WAERS

PS: Пока временно решение ничего не делать с таблицами T_ANLZ и T_ANLB в данном экзите. А так ждем ответа от SAP.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 696
  • Reputation Power: 2
  • Uukrul barely matters.Uukrul barely matters.
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Как там, я хренею дорогая редакция, отправил об этой проблеме сообщение на выходе получил ответ, что проблема в кастомер-коде и они не занимаются решением проблем кастом-кода... Вопрос, где они там этих дебилов набирают? Ну по традиции второй вопрос, что делать не задаю, похоже просто забить придется на время. Переписываться как-то облом, да времени нет особо.