Rozdíl mezi odchodem uživatele a odchodem zákazníka SAP
⚡ Chytré shrnutí
Uživatelské a zákaznické výstupy v SAP ABAP jsou vylepšené hooky, které přidávají vlastní funkce ke standardním programům bez nutnosti úprav. SAP kód. Tato stránka vysvětluje typy zákaznických ukončení, zpracované příklady, transakce SMOD a CMOD, uživatelské ukončení a rozdíly mezi těmito dvěma technikami.

Co je to odchod zákazníků?
Zákaznické východy jsou "háky" poskytované SAP v mnoha standardních programech, obrazovkách a nabídkách, na kterých mohou zákazníci "pověsit" přizpůsobitelné funkce pro splnění obchodních požadavků. Více o tom za chvíli…
Hlavní výhodou je, že standard SAP Objekt se nikdy nemění. Vlastní kód se nachází v rezervovaném include nebo subscreenu, který SAP volá ve správný okamžik, takže vylepšení přežije aktualizaci systému, místo aby bylo přepsáno. Z tohoto důvodu patří ukončení do rodiny SAP techniky vylepšení spolu s novějším doplňkem Business Add-In.
Typy zákaznických východů
Existují tři hlavní typy zákaznických východů:
- Funkční modul opouští
- Výstupy z obrazovky
- Nabídka se ukončí
Výstup funkčního moduluUmožňuje zákazníkovi přidat kód prostřednictvím funkčního modulu na konkrétní místo v SAP aplikačního programu
Syntax: CALL CUSTOMER-FUNCTION '004'
Ukončení obrazovkyUmožňuje zákazníkovi přidávat pole na obrazovku v SAP program přes dílčí obrazovku. Dílčí obrazovka se volá v rámci logiky toku standardní obrazovky.
Format: CALL CUSTOMER-SUBSCREEN CUSTSCR2
Ukončení nabídky: Umožňuje zákazníkovi přidávat položky do rozbalovací nabídky ve standardním SAP naprogramovat. Tyto položky lze použít k vyvolání doplňkových programů nebo uživatelských obrazovek.
Format: +CUS ( additional item in GUI status )
Příklady zákaznických výstupů
Příklad výstupu obrazovky:
V transakci CAT2 – Time Sheet Entry chce HR zahrnout interaktivní potvrzení, že vědomé odeslání nesprávných údajů je důvodem k propuštění.
Příklad ukončení menu:
V transakci SE38 – ABAP Editor si vývojový tým přeje zahrnout odkaz nabídky na transakci SE80 – Object Navigator pro snadné použití.
PŘED
PO
Příklad výstupu funkčního modulu:
Společnost chce, aby byly bankovní údaje dodavatelů při vytváření dodavatele povinnou událostí. Musí tedy blikat chybová zpráva „Zadejte prosím bankovní údaje“.
PŘED
PO
Vyhledání zákaznických východů
V transakci SMOD a podívat se na detaily -
Nebo v transakci SE81 můžete použít příslušnou oblast použití
Vytvořte zákaznický výstup
Chcete-li vytvořit zákaznický výstup, musíte nejprve vytvořit projekt v transakci CMOD
Later přiřadíte zákaznický výstup svému projektu.
Celá sekvence od nalezení východu až po aktivaci kódu je krátká a vždy se skládá ze stejných šesti kroků.
- Najděte vylepšení: Vyhledejte název vylepšení v SMOD, například komponentu EXIT_SAPMF02K_001 pro kmenový soubor dodavatele.
- Vytvořte projekt: V CMOD zadejte název projektu, který začíná písmenem Z nebo Y, a vyberte Vytvořit.
- Přiřadit vylepšení: Na obrazovce Přiřazení vylepšení přidejte název vylepšení, který obsahuje danou uživatelskou proceduru.
- Napište kód: Otevřete exit funkčního modulu a umístěte kód do jeho rezervovaného include, který začíná ZX.
- Ovládání obrazovek a částí nabídky: Pro ukončení na obrazovce vytvořte podobrazovku CUSTSCR a pro ukončení nabídkou vyplňte kód funkce +CUS ve stavu grafického rozhraní.
- Aktivujte projekt: Aktivujte projekt v CMOD, aby se za běhu volal výstup. Bez aktivace je kód ignorován.
💡 Tip: Vložení (include) funkčního modulu začíná znakem ZX, takže je přenášen s projektem. Nikdy neumísťujte vlastní logiku přímo do SAP funkční modul, protože by to byla modifikace, nikoli vylepšení.
Co je to uživatelský výstup?
User Exit slouží ke stejnému účelu jako Customer Exits, ale jsou dostupné pouze pro uživatele SD modul. Ukončení je implementováno jako volání funkčního modulu. Kód je napsán vývojářem.
Dobře víte, že User Exit v SD je MV45AFZZ
- USEREXIT_FIELD_MODIFICATION – Pro úpravu atributů obrazovky
- USEREXIT_SAVE_DOCUMENT – Pro provedení operací, když uživatel stiskne Uložit
- USEREXIT_SAVE_DOCUMENT_PREPARE
- USEREXIT_MOVE_FIELD_TO_VBAK – Když se změny záhlaví uživatele přesunou do pracovní oblasti záhlaví.
- USEREXIT_MOVE_FIELD_TO_VBAP – Když jsou změny uživatelských položek přesunuty do SAP pracovní oblast položky
Uživatelský exit je technicky vzato podprogram (FORM) uvnitř SAP include, takže se upravuje přímo a vyžaduje přístupový klíč. Toto je hlavní praktický rozdíl oproti zákaznickému exitu, shrnutý v následující části.
Odchod uživatele vs. odchod zákazníka
Obě techniky přidávají ke standardnímu chování vlastní vlastnosti. SAP, ale liší se rozsahem, technologií a bezpečností upgradu. Níže uvedená tabulka je porovnává.
| Kritéria | Uživatelský odchod | Východ zákazníka |
|---|---|---|
| dostupnost | Pouze SD modul | Napříč všemi SAP moduly |
| Technika | Podprogram (FORM) v SAP zahrnují například MV45AFZZ | Opuštění funkčního modulu, obrazovky nebo menu spravované v SMOD a CMOD |
| přístupový klíč | Vyžaduje přístupový klíč pro úpravy | Není potřeba žádný přístupový klíč |
| Upgrade chování | Musí být zaškrtnuto v aktualizaci pomocí SPAU. | Upgrade bezpečné, voláno z rezervovaného include |
| Spravovaný | Upraveno přímo v include | Aktivováno prostřednictvím projektu CMOD |
Zákaznické východy jsou bezpečnější a obecnější z těchto dvou. Pro vylepšení, na která se žádný z východů nedostane, SAP později představil doplněk Business Add-In.
Odchody zákazníků vs. BAdI
A Doplněk pro firmy (BAdI) je objektově orientovaný nástupce zákaznického exitu. Místo rezervovaného include definuje BAdI rozhraní a vlastní logika je umístěna ve třídě, která ho implementuje. To přináší dvě výhody, které zákaznický exit nenabízí.
- Více implementací: Vícenásobné použití BAdI umožňuje několik nezávislých implementací stejného vylepšení, zatímco zákaznický exit umožňuje pouze jednu.
- Orientace objektu: BAdI pracuje s metodami a třídami, takže se hodí k modernímu vývoji objektů ABAP a je snazší jej filtrovat podle země nebo obchodního scénáře.
Praktické pravidlo je jednoduché: použijte existující zákaznický nebo uživatelský výstup, pokud bod vylepšení již existuje, a použijte BAdI, pokud je vyžadován nový, opakovaně použitelný bod vylepšení.








