Ako vytvoriť Custom Business Object s automaticky generovaným ID číslom a kontrolami v SAP Marketing Cloude?

Ako vytvoriť Custom Business Object s automaticky generovaným ID číslom a kontrolami v SAP Marketing Cloude?

Napísal: Filip Žarnovický, CX konzultant

Narozdiel od predchádzajúcich on-premisových riešení, SAP Marketing Cloud zatiaľ neponúka príliš veľa možností nastavenia custom business objectu. Ak teda chcete mať automaticky generované ID, prípadne kontroly vyplnenia povinných polí, potrebujete pomoc vývojára. Ide však o veľmi jednoduchú činnosť, ktorú s malou pomocou zvládnete aj vy. Tou pomocou je práve tento blog kde si popíšeme:

  • Ako vytvoriť custom business object vrátane samostatnej aplikácie na ich manažovanie.
  • Ako ho naplniť poliami, ktoré chcete aby obsahoval.
  • Ako zabezpečiť automatické generovanie ID podľa Vami určenej číselnej šablóny.
  • Ako automaticky dopĺňať meno zamestnanca, ktorý custom objekt vytvoril.
  • Ako nastaviť základné kontroly na dátumy a vyplnenie povinných polí spolu s chybovými hláškami.

 

  1. Začneme so základným vytvorením custom business object. V skupine Extensibility otvorí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. Ďalšie polia sa doplnia automaticky, je ich ale možné zmeniť. Klikneme na tlačidlo Create.How to Create Custom Business Object with Automatically Generated ID and Checks in SAP Marketing Cloud
  4. Otvorí sa nám nové okno so záložkou General Information. Podľa potreby zaškrtneme nasledovné checkboxy.
  • Determination and Validation – umožňuje implementovať custom logic.
  • UI Generation – generovanie User Interface pre bežiacu aplikáciu na riadenie objektu.
  • Service Generation – vytváranie ODát, ktoré umožňujú uploadovanie dát.
  • Can Be Associated – umožňujú asociáciu objektu s custom field.
  • System Administrative Data – automaticky vytvára administratívne polia (Created On, Created By, Changed On, Changed By).
  • Change Documents – automatické logovanie o zmenách objektov.
  • Data Access Management – poskytuje bezpečnostnú funkcionalitu relevantnú pre ochranu dát.

Pozn. pre naše potreby zaškrtneme prvých 6 možností
How to Create Custom Business Object with Automatically Generated ID and Checks in SAP Marketing Cloud

  1. Presunieme sa na záložku Fields. Systém automaticky vytvoril základné Labels. Cez tlačidlo New máme možnosť pridať nové. Doplníme mu názov a typ. Väčšina typov je jednoduchá bez potreby ďalšieho nastavenia, rozdiel je však pri type Code List. Pre ten je potrebné vytvoriť špecializovaný zoznam možností výberu. Postup vytvorenia Code Listu nájdete tu.How to Create Custom Business Object with Automatically Generated ID and Checks in SAP Marketing Cloud
  2. Pri výbere Code Listu sa nám zobrazia len tie, ktoré sú so statusom Published. Z tých si následne môžeme vybrať ten, ktorý potrebujeme.

 

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

  1. Takýmto spôsobom si naplníme všetky potrebné Labels, ktoré chceme v našom objekte používať.How to Create Custom Business Object with Automatically Generated ID and Checks in SAP Marketing Cloud

!!! Pre potreby vytvorenia kontrol je dôležité vytvoriť pole Is Consistent s typom Checkbox.

  1. Pred tým ako budeme pokračovať s vytváraním generátora ID a kontrolami, sme upozornení na to, že musíme objekt publikovať.How to Create Custom Business Object with Automatically Generated ID and Checks in SAP Marketing Cloud
  2. Vykonáme tak vpravo dole tlačidlom Publish.How to Create Custom Business Object with Automatically Generated ID and Checks in SAP Marketing Cloud
  3. Vrátime sa naspäť do nášho novo vytvoreného a publikovaného objektu na záložku Logic. Status objektu vidíme vpravo hore. Vytváranie custom Logic sa delí na 2 časti:
    1. After Modification
    2. Before Save

My začneme pracovať s After Modification, kde definujeme hlavnú časť nášho 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í sa nám okno Draft Logic, kam môžeme vpisovať kód. Na obrázku sa nachádza príklad kódu, ktorý generuje ID objektu vo formáte 6500x. Samozrejme formát si môžete zmeniť.

Pozn. tento kód je nastavený len na čisto numerický formát generovania ID, čiže bez písmen.

Zvýraznené časti obsahujú názov objektu a polí, ktoré sme si definovali v našom príklade bod 7. Tieto časti si musíte upraviť podľa názvu vášho objektu a polí.


HINT: ak začnete písať názov poľa / objektu, stlačte CTRL+SPACE a zobrazí sa vám pomôcka všetkých dostupných polí, z ktorých si vyberiete vaše ID.

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

Kód na generovanie 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 prípade, že máte chybu v syntaxe, systém vás na to upozorní červeným zvýraznením riadku spolu s chybovou hláškou.How to Create Custom Business Object with Automatically Generated ID and Checks in SAP Marketing Cloud
  2. Vytvorený kód je možné si otestovať. Kliknutím do Click to add value (1) sa zobrazia vami vytvorené polia, ktoré možno naplniť do testovacieho scenára. Následne vľavo dole stlačíme Test (2).How to Create Custom Business Object with Automatically Generated ID and Checks in SAP Marketing Cloud
  3. V okne Test Results si vieme pozrieť výsledok testu. V prípade, že nám doplnilo pole ID, náš kód je správny.How to Create Custom Business Object with Automatically Generated ID and Checks in SAP Marketing Cloud
  4. Rovnakým spôsobom pridáme aj časť s automatickým doplnením zamestnanca a kontrolami povinne vyplnených polí Start Date, End Date, Name a či End Date je väčší ako Start Date.

Pozn. Pole Is Consistent používame ako pomocné pole na preklenutie kontrol z logických častí 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álnu 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. Prejdeme do časti Before Save.How to Create Custom Business Object with Automatically Generated ID and Checks in SAP Marketing Cloud
  3. Vložíme kód na rozhodnutie o uložení podľa kontrol v časti After Validation a pridaní Error Messages. Pri prispôsobovaní kódu sa riadime pokynmi v bode 11.

Pozn. V prípade, že sme do časti After Modification nepridávali kontroly, tento bod nevykonáme.

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

Kód do časti 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 prípade, že sme na úvodnej strane objektu zaškrtli možnosť UI Generation, vytvorí sa nám samostatná aplikácia na vytváranie nášho custom objektu. Cez hyperlink Maintain Catalogs definujeme, v akom katalógu a teda zároveň aj v skupine aplikácií sa nám naša custom appka zobrazí.How to Create Custom Business Object with Automatically Generated ID and Checks in SAP Marketing Cloud
  2. V prípade, že ste sa riadili všetkými pokynmi, máte na home page prístupnú aplikáciu na vytváranie vlastných custom objektov.

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