New Project
User guide
×
Menu
Index
  • 1. Témy
  • 1.3. Q&A
  • 1.3.4. Odklonění funkcionality do jiného SRV v závislosti na Repository

1.3.4. Odklonění funkcionality do jiného SRV v závislosti na Repository

Řešil jsem případ, že jsem měl funkci Změna datumu dokladu (c.f. 964, akce = 'zmena_datum' ) nad třídou Výdejky (211). Tato funkce měla na jedné zakázkace s Quort výrobou (TatraSvit) změněný SRV objekt ze standardního sk_fnc_doklady_funkce_srv na q_sk_fnc_doklady_funkce_srv. Toto však neplatilo pro jiné zakázky s Quort výrobou a současně neplatilo pro všechna použití původního srv objektu (např. mám stejnou fci pro příjemku a na zakázce TatraSvit měla původní SRV).
 
Požadavky na řešení:
1. Zachovat stejnou akci 'zmena_datumu'. Důvod: spousteni z jinych funkci.
2. Nepřenášet funkcionalitu z q_sk_fnc_doklady_funkce_srv do sk_fnc_doklady_funkce_srv. Důvod: Funkcionalita výroby by měla být v nadstavbové knihovně a nemělo by se zásadně zasahovat do kódu (kvůli převodu).
3. Ponechat možnost spouštět funkci na zakázce s Quort výrobou s původním SRV objektem. Důvod: Přidaná funkcionalita není potřeba nebo může uškodit, opět by se nemělo zásadně zasahovat do kódu (kvůli převodu).
4. Nutno se orientovat dle údajů v Repository - ať již u funkce, nebo přes featury či jinak.
5. Nemělo by záležet na vzájmeném pořadí knihoven Warehouse a Quort_Ext. Důvod: oboje jsou to naše "kmenové" knihovny a bylo by težké to uhlídat.
 
Řešení:
Zavedli jsme nový parametr do atributu Funject s pojmenováním: UseIfRepositoryMatchSrv. Pokud je v tomto atributu uveden u SRV objektu a shoduje se s udajem v Repository u funjectu, tak tento SRV dostane pri tvorbě přednost před obecným SRV objektem.
 
[Funject(211, "zmena_datum", true, UseIfRepositoryMatchSrv = "q_sk_fnc_doklady_funkce_srv")]
public class q_sk_fnc_doklady_funkce_srv : sk_fnc_doklady_funkce_srv
{  ...  }
 
Příklady:
Zakazka obecna bez vyroby (NorisNext2)
c.f.   c.t.   srv
963  210  uo_sk_fnc_doklady_funkce_srv
964  211  uo_sk_fnc_doklady_funkce_srv
 
Zakazka s vyrobou s puvodnim SRV (DPS)
c.f.   c.t.   srv
963  210  uo_sk_fnc_doklady_funkce_srv
964  211  uo_sk_fnc_doklady_funkce_srv
 
Zakazka s vyrobou se zmenenym SRV (TatraSvit)
c.f.   c.t.   srv
963  210  uo_sk_fnc_doklady_funkce_srv
964  211  uo_q_sk_fnc_doklady_funkce_srv
Made with help of Dr.Explain