Jak vytvořit Custom Business Object s automaticky generovaným ID číslem a kontrolami v SAP Marketing Cloudu?

Jak vytvořit Custom Business Object s automaticky generovaným ID číslem a kontrolami v SAP Marketing Cloudu?

Napsal: Filip Žarnovický, CX konzultant

Narozdíl od předchozích on-premisových řešení, SAP Marketing Cloud zatím nenabízí příliš mnoho možností nastavení custom business objectu. Pokud tedy chcete mít automaticky generované ID, případně kontroly vyplnění povinných polí, potřebujete pomoc vývojáře. Jde však o velmi jednoduchou činnost, kterou s malou pomocí zvládnete i vy. Tou pomocí je právě tento blog kde si popíšeme:Jak vytvořit custom business object včetně samostatné aplikace na jejich správu.

  • Jak ho naplnit poli, které chcete aby obsahoval.
  • Jak zajistit automatické generování ID dle Vámi určené číselné šablony.
  • Jak automaticky doplňovat jméno zaměstnance, který custom objekt vytvořil.
  • Jak nastavit základní kontroly na data a vyplnění povinných polí spolu s chybovými hláškami.

  1. Začneme se základním vytvořením custom business objectu. V skupině Extensibility otvoříme app Custom Business Objects.How to Create Custom Business Object with Automatically Generated ID and Checks in SAP Marketing Cloud
  2. Vytvoríme nový objekt klikom na tlačidlo New (vpravo hore)How to Create Custom Business Object with Automatically Generated ID and Checks in SAP Marketing Cloud
  3. Definujeme mu Name. Další pole se doplní automaticky, je jich ale možné změnit. Klikneme na tlačítko Create.How to Create Custom Business Object with Automatically Generated ID and Checks in SAP Marketing Cloud
  4. Otevře se nám nové okno se záložkou General Information. Podle potřeby zaškrtněte následující checkboxy.
  • Determination and Validation – umožňuje implementovat custom logic.
  • UI Generation – generování User Interface pro běžící aplikaci na řízení objektu.
  • Service Generation – vytváření Odate, které umožňují uploadování dat.
  • Can Be Associated – umožňují asociaci objektu s custom field.
  • System Administrative Data – automaticky vytváří administrativní pole (Created On, Created By, Changed On, Changed By).
  • Change Documents – automatické logování o změnách objektů.
  • Data Access Management – poskytuje bezpečnostní funkcionalitu relevantní pro ochranu dat.

Pozn. pro naše potřeby zaškrtneme prvních 6 možností.
How to Create Custom Business Object with Automatically Generated ID and Checks in SAP Marketing Cloud

  1. Přesuneme se na záložku Fields. Systém automaticky vytvořil základní Labels. Přes tlačítko New máme možnost přidat nové. Doplníme mu Name a Type. Většina typů je jednoduchá bez nutnosti dalšího nastavení, rozdíl je však u typu Code List. Pro ten je třeba vytvořit specializovaný seznam možností výběru. Postup vytvoření Code Listu naleznete zde.
    How to Create Custom Business Object with Automatically Generated ID and Checks in SAP Marketing Cloud
  2. Při výběru Code Listu se nám zobrazí pouze ty, které jsou se statusem Published. Z těch si následně můžeme vybrat ten, který potřebujeme.

 

How to Create Custom Business Object with Automatically Generated ID and Checks in SAP Marketing Cloud

  1. Tímto způsobem si naplníme všechny potřebné Labels, které chceme v našem objektu používat.How to Create Custom Business Object with Automatically Generated ID and Checks in SAP Marketing Cloud

!!! Pro potřeby vytvoření kontrol je důležité vytvořit pole Is Consistent s typem Checkbox.

 

  1. Před tím než budeme pokračovat s vytvářením generátoru ID a kontrolami, jsme upozorněni na to, že musíme objekt publikovat.
    How to Create Custom Business Object with Automatically Generated ID and Checks in SAP Marketing Cloud
  2. Provedeme tak vpravo dole tlačítkem Publish.How to Create Custom Business Object with Automatically Generated ID and Checks in SAP Marketing Cloud
  3. Vrátíme se zpět do našeho nově vytvořeného a publikovaného objektu na záložku Logic. Status objektu vidíme vpravo nahoře. Vytváření custom Logic se dělí na 2 části:
    1. After Modification
    2. Before Save

My začneme pracovat se After Modification, kde definujeme hlavní část našeho kódu.
How to Create Custom Business Object with Automatically Generated ID and Checks in SAP Marketing Cloud
How to Create Custom Business Object with Automatically Generated ID and Checks in SAP Marketing Cloud

  1. Zobrazí se nám okno Draft Logic, kam můžeme vpisovat kód. Na obrázku se nachází příklad kódu, který generuje ID objektu ve formátu 6500x. Samozřejmě formát si můžete změnit.

Pozn. tento kód je nastaven pouze na čistě numerický formát generování ID, čili bez písmen.

Zvýrazněné části obsahují název objektu a polí, které jsme si definovali v našem příkladu bod 7. Tyto části si musíte upravit podle názvu vašeho objektu a polí.

HINT: pokud začnete psát název pole / objektu, stiskněte CTRL + SPACE a zobrazí se vám pomůcka všech dostupných polí, ze kterých si vyberete vaše ID.

How to Create Custom Business Object with Automatically Generated ID and Checks in SAP Marketing Cloud

Kód na generování ID:

*set ID

IF tradepromotion-promotionid IS INITIAL.

SELECT MAX( Promotionid ) FROM yy1_tradepromotion INTO @DATA(current_max_id).

if current_max_id = 0.

tradepromotion-PromotionID = 65001.

else.

tradepromotion-promotionID = current_max_id + 1.

endif.

ENDIF.

 

  1. V případě, že máte chybu v syntaxi, systém vás na to upozorní červeným zvýrazněním řádku spolu s chybovou hláškou.How to Create Custom Business Object with Automatically Generated ID and Checks in SAP Marketing Cloud
  2. Vytvořený kód je možné si otestovat. Kliknutím do Click to add value (1) se zobrazí vámi vytvořené pole, které lze naplnit do testovacího scénáře. Následně vlevo dole stiskneme Test (2).How to Create Custom Business Object with Automatically Generated ID and Checks in SAP Marketing Cloud
  3. V okně Test Results si umíme podívat na výsledek testu. V případě, že nám doplnilo pole ID, náš kód je správný.How to Create Custom Business Object with Automatically Generated ID and Checks in SAP Marketing Cloud
  4. Stejným způsobem přidáme i část s automatickým doplněním zaměstnance a kontrolami povinně vyplněných polí Start Date, End Date, Name a zda End Date je větší než Start Date.

Pozn. Pole Is Consistent používáme jako pomocné pole na překlenutí kontrol z logických částí After Modification do Before Save.

 

* find out name of employee

   tradepromotion-employeename = cl_abap_context_info=>get_user_formatted_name( ).

 

* check of filled values

IF tradepromotion-promotionstartdate IS INITIAL

OR tradepromotion-promotionenddate IS INITIAL

OR tradepromotion-promotionstartdate GE tradepromotion-promotionenddate

OR tradepromotion-promotionname IS INITIAL

tradepromotion-isconsistent = abap_false.

ELSE.

tradepromotion-isconsistent = abap_true.

ENDIF.

 

  1. Finální podobu kódu otestujeme, uložíme a publikujeme.
    How to Create Custom Business Object with Automatically Generated ID and Checks in SAP Marketing Cloud
  2. Přejdeme do části Before Save.How to Create Custom Business Object with Automatically Generated ID and Checks in SAP Marketing Cloud
  3. Vložíme kód na rozhodnutí o uložení podle kontrol v části After Validation a přidání Error Messages. Při přizpůsobování kódu se řídíme pokyny v bodě 11.

Pozn. V případě, že jsme do části After Modification nepřidávali kontroly, tento bod neprovedeme.

How to Create Custom Business Object with Automatically Generated ID and Checks in SAP Marketing Cloud

Kód do části Before Save:

* decide to save on checks

IF tradepromotion-isconsistent EQ abap_true.

valid = abap_true.

RETURN.

ELSE.

valid = abap_false.

ENDIF.

 

*error messages

IF tradepromotion-promotionstartdate IS INITIAL OR tradepromotion-promotionenddate IS INITIAL.

message = ‚Start Date and End Date must not be empty.‘.

RETURN.

ELSEIF tradepromotion-promotionstartdate GE tradepromotion-promotionenddate.

CONCATENATE ‚End Date‘ tradepromotion-promotionenddate ‚must be later than Start Date‘ tradepromotion-promotionstartdate ‚!‘ INTO message SEPARATED BY space.

RETURN.

ENDIF.

 

IF tradepromotion-promotionname IS INITIAL.

message = ‚Name must not be empty.‘.

RETURN.

ENDIF.

 

  1. V případě, že jsme na úvodní straně objektu zaškrtli možnost UI Generation, vytvoří se nám samostatná aplikace na vytváření našeho custom objektu. Přes hyperlink Maintain Catalogs definujeme, v jakém katalogu a tedy zároveň i ve skupině aplikací se nám naše custom appky zobrazí.
    How to Create Custom Business Object with Automatically Generated ID and Checks in SAP Marketing Cloud
  2. V případě, že jste se řídili všemi pokyny, máte na home page přístupnou aplikaci na vytváření vlastních custom objektů.

How to Create Custom Business Object with Automatically Generated ID and Checks in SAP Marketing Cloud
How to Create Custom Business Object with Automatically Generated ID and Checks in SAP Marketing Cloud