Введение
Программа ODTF_REPL_CC используется для передачи центров затрат из SAP ERP CO в Employee Central, что включает следующие данные: уникальный код центра затрат (поле externalCode), краткий код центра затрат (поле costCenterExternalObjectId), дата начала действия, статус, имя, описание, юридическое лицо (т.н. балансовая единица) и руководитель центра затрат.[1][2]
Программа использует IDoc ODTF_CCTR, основанный на базисном типе ODTF_CCTR01.
В этой статье мы продемонстрируем способы передачи центров затрат и их соединений с дополнительными типовым объектам и объектам основы, например: структурными единицами, расположением, функциями должностей или подразделениями.
Читатель узнает альтернативу расширению базисного типа ODTF_CCTR01.
Общие сведения
Предположим, что вместе с центрами затрат требуется передать их соединения со структурной единицей и расположением, чтобы использовать эти соединения в критериях полей для ограничения списка центров затрат, доступных для выбора в отделах, позициях и СКУ-элементе «Информация о должности».[3]
Стандартный пакет ERPtoSuccessFactorsEmployeeCentralCostCenter приложения SAP Cloud Integration не видит расширение базисного типа ODTF_CCTR01, поэтому для передачи дополнительных соединений приходится использовать стандартные поля:
-
externalCode, что является уникальным кодом центра затрат
-
costCenterExternalObjectId, что является кратким кодом центра затрат
Поле externalCode
Предположим, что коды центров затрат имеют смысловое значение и что пятый символ кода соответствует структурной единице. Например, центры затрат ABCD1234567890 и ABCD9876543210 принадлежат структурной единице CORP, так как пятый символ в их коде равен 1 и 9 соответственно. Мы можем заложить эту логику в определение структурной единицы при помощи нестандартного множественного составного дочернего объекта. На Рисунке 1 этот дочерний объект отмечен желтым. Код его определения cust_FifthCharOfCostCenterCode.
Программный код 1 демонстрирует тело бизнес-правила «По сохранению», которое вычисляет структурную единицу на основе внешнего кода объекта CostCenter. Это MDF-правило с назначением «Оценить», выполняемое по событию «Сохранение» MDF-объекта CostCenter, если быть точным.
Привязка центров затрат к другим типовым объектам и объектам основы производиться аналогичным образом.
Программный код 1. MDF-правило, связывающее центры затрат с их структурными единицами
rule() { if(true) { CostCenter.cust_toBusinessUnit = lookup("cust_FifthCharOfCostCenterCode","parent","", ["externalCode","==",substring(text:CostCenter.externalCode,start:"5",length:"1"),"",""]); } }
Поле costCenterExternalObjectId
У поля costCenterExternalObjectId узкое применение: оно может использоваться для передачи данных по сотрудникам из Employee Central в SAP HCM при условии, если:
-
Использование поля активировано в кластере VC_ECPAO_QRY_CFG «Параметры запроса основных данных сотрудников и организационного присвоения»
-
Интеграция PA/PD в SAP HCM деактивирована
-
Поле cost-center СКУ-элемента «Информация о должности» передается непосредственно в поле KOSTL инфотипа «Организационное присвоение» в SAP HCM
Однако существует много способов определения места возникновения затрат на основании поля externalCode для передачи данных в инфотип «Организационное присвоение», поэтому, как правило, нет необходимости использовать поле costCenterExternalObjectId по прямому назначению.
Предположим, что поле costCenterExternalObjectId не требуется для передачи МВЗ в инфотип «Организационное присвоение», и в таком случае мы можем использовать это поле для передачи дополнительных связей центров затрат. Длина этого составляет поля 40 символов, и этого достаточно для всех родительских объектов мест возникновений затрат.
Программный код 2 демонстрирует реализацию BAdI ODTF_CO_REPL_IDOC_COST_CENTERS, которая заполняет поле costCenterExternalObjectId кодами расположения и структурной единицы.
Программный код 2. Пример реализации BAdI ODTF_CO_REPL_IDOC_COST_CENTERS
METHOD if_odtf_co_repl_idoc_cost_cent~modify_cost_center_extractor. LOOP AT cs_cost_centers_idoc-cost_centre ASSIGNING FIELD-SYMBOL(<ls_cost_centre>). <ls_cost_centre>-remote_external_object_id = 'CODE_OF_LOCATION ; CODE_OF_BUSINESS_UNIT'. "Insert your code here ENDLOOP. ENDMETHOD.
Передача поля costCenterExternalObjectId должна быть включена в приложении SAP Cloud Integration в пакете ERPtoSuccessFactorsEmployeeCentralCostCenter в iFlow SAPToSFSFCostCenterReplication во внешнем параметре USE_EXTERNAL_COST_CENTER.
Привязка центров затрат к самим типовым объектам и объектам основы производиться так, как уже было описано в Программном коде 1.
Выводы
Центры затрат можно автоматически привязывать к дополнительным объектам при помощи реализации BAdI ODTF_CO_REPL_IDOC_COST_CENTERS и MDF-правил объекта CostCenter.
Список литературы
-
Латышенко В. В. The Core Hybrid integration model on the example of Cost Centers [Электронный ресурс] // SAPinsider. 2020. URL: https://www.sapinsideronline.com/wp-content/uploads/2020/12/The-Core-Hybrid-Integration-Model-on-the-Example-of-Cost-Centers.pdf (Дата обращения: 17.04.2022).
-
Replicating Cost Centers from SAP ERP to Employee Central Using SAP Cloud Integration as the Middleware. Document Version: 1H 2022 – 2022-04-14 [Электронный ресурс]. URL: https://help.sap.com/doc/6e943d18c1f347b88e91b1e605d502e2/latest/en-US/SF_ERP_EC_CC_HCI_en-US.pdf (Дата обращения: 17.04.2022).
-
Replicating Employee Master Data and Organizational Assignments from Employee Central to SAP ERP HCM. Document Version: 1H 2022 – 2022-04-14 [Электронный ресурс]. URL: https://help.sap.com/doc/435c6837038d4eb4b1a39947411d5a3e/latest/en-US/SF_EC_ERP_EE_Data_Org_Assignm_HCI_en-US.pdf (Дата обращения: 17.04.2022).\
[1] Центры затрат в русском переводе SAP ERP называются местами возникновения затрат, сокращенно МВЗ
[2] Если есть выбор передачи центров затрат либо из SAP CO, либо из SAP HCM, то выбор SAP HCM является более предпочтительным, чтобы обеспечить одинаковый список центров затрат в SAP HCM и Employee Central
[3] СКУ — система кадрового учета, HRIS в английском переводе SuccessFactors
ссылка на оригинал статьи https://habr.com/ru/post/661353/
Добавить комментарий