Často kladené otázky - nástroje prispôsobenia, skriptovania a tipy k ich využitiu na riešenie rôznych úloh
V sekcii kapitol FAQ nájdete buď odpovede na často kladené otázky, alebo najrôznejšie tipy a triky, ako riešiť v systéme ABRA Gen najrôznejšie problémy. Vzhľadom k tomu, že problematika môže byť obsiahlejšia, sú pri jednotlivých odpovediach často odkazy do ďalších oddielov on-line dokumentácie.
Témy otázok:
FAQ
| Otázka: | Môžeme v editore rozloženia stĺpcov pre viacriadkový zoznam (multigrid) vytvoriť vlastné rozloženie pre každého používateľa? |
| Odpoveď: |
Nie. Funkcionalita je koncipovaná ako jedna globálna definícia pre celú firmu. |
| Otázka: | Je možné v editore rozloženia stĺpcov pre viacriadkový zoznam (multigrid) vytvárať nové šablóny (layouty)? |
| Odpoveď: |
Nie. Šablóny (layouty) určuje systém podľa typu riadka. Používateľ upravuje len ich obsah. |
| Otázka: | Je možné v editore rozloženia stĺpcov nastaviť vyhľadávanie podľa ľubovoľného poľa číselníka? |
| Odpoveď: |
Áno, ak je dané pole v číselníku podporované na hľadanie. Pozrite si návod, ako je možné vykonať zmenu hodnoty, podľa ktorej sa vyhľadáva. |
| Otázka: | Je bezpečné v editore rozloženia stĺpcov vykonávať zmeny priamo v produkcii? |
| Odpoveď: |
Jednoduché úpravy áno, ale zložitejšiu konfiguráciu odporúčame najskôr overiť v testovacom prostredí. |
| Otázka: | Vykonali sme v testovacom prostredí zmeny editora rozloženia stĺpcov, ako ich dostaneme do produkčného prostredia? |
| Odpoveď: |
Prenos medzi testovacím a produkčným prostredím je možné vykonať pomocou inštalačnej sady. Viac k tejto téme viď kapitola Podpora inštalačných sád. |
| Otázka: | Urobili sme zmeny šablóny (layoutu) v editore rozloženia stĺpcov a potrebujeme vrátiť pôvodný stav. Ako to urobíme? |
| Odpoveď: |
V otvorenom editore rozloženia stĺpcov kliknete na tlačidlo Systémové rozloženie, ktorým možno vrátiť všetky rozloženia stĺpcov do pôvodného stavu. Pozor na potvrdenie, ktoré môže nenávratne zrušiť vlastnú konfiguráciu. |
| Otázka: | Je možné v editore rozloženia stĺpcov skryť ľubovoľný stĺpec? |
| Odpoveď: |
Stĺpce možno skryť, ak sú zadávané hodnoty nepovinné. V takom prípade možno skryť aj systémové stĺpce. |
| Otázka: | Máme tlačovú zostavu, kde tlačíme kódy skladových kariet. Na tejto tlačovej zostave máme nastavené zalamovanie slov. Kódy sú však často dlhé a neobsahujú medzery a zalomenie sa nevykoná. Ako to opraviť? |
| Odpoveď: |
To, že nedôjde k zalomeniu slova pri texte, kde nie sú medzery, je vlastnosť, nie chyba. Pri texte bez medzier nemá systém ako zistiť, kde slovo zalomiť. Dá sa ale pomerne ľahko nastaviť zalamovanie slov po XY znakoch a to bez ohľadu na medzery. Ako to v tlačovej zostave vykonať, sme opísali v návode Ako odriadkovať text bez medzier v tlačovej zostave. |
| Otázka: | Na skladových kartách máme pri každej jednotke vyplnenú hmotnosť. Keď vyskladňujeme tovar dodacím listom, potrebujeme poznať celkovú hmotnosť celej zásielky. Dá sa ju pridať do tlačovej zostavy? |
| Odpoveď: |
Áno, je to možné. Stačí si vytvoriť kópiu systémovej tlačovej zostavy a doplniť položku z databázy, ktorá vracia celkovú hmotnosť všetkých položiek dokladu v kilogramoch. Návod, ako presne postupovať, sme pridali do sekcie Návody, Ako pridať hmotnosť do tlačovej zostavy dodacích listov. |
| Otázka: | Vykonávam import a v logu vidím chybu Chyba XML parsera: not well-formed (invalid token) a import sa nevykoná. Čo chybu spôsobuje a ako ju vyriešiť? |
| Odpoveď: |
Dôvodom, prečo dochádza k tejto chybe, môže byť názov importovaného súboru. Overte prosím, či názov importovaného súboru neobsahuje nepovolené znaky, napr. &, €, @, # a pod. Ak áno, súbor premenujte a vynechajte špeciálne znaky. V prípade, že súbor neobsahuje žiadne špeciálne znaky, môže mať problém inú individuálnu príčinu, ktorú bude potrebné preveriť. Obráťte sa prosím v tomto prípade na Hotline. |
| Otázka: | Vykonávam import skladových kariet. V importnom súbore mám pri jednotke nastavenú jednotku BAL, napriek tomu sa vždy okrem tejto jednotky naimportuje aj jednotka KS. Dá sa to nejako riešiť? |
| Odpoveď: |
Dôvodom, prečo sa okrem importu jednotky z importného súboru vytvorí aj jednotka KS, je to, že na business objekte skladovej karty je nastavená vlastnosť, aby sa pri založení novej skladovej karty vždy založila aj jednotka Kusy, KS. Túto vlastnosť nie je možné nijako vypnúť. Je však možné situáciu ošetriť tak, že budete spúšťať dva importy. Prvý import bude vytvárať nové skladové karty bez jednotiek. Druhý import bude opravovať jednotky na skladovej karte za jednotky z importného súboru. Oba importy následne môžete pridať do agendy Sady importných a exportných definícií a následne ich spúšťať jedinou akciou, a to buď tlačidlom Spracovať, alebo naplánovanou úlohou. |
| Otázka: | Mám pripravenú definíciu na import prijatých objednávok, ale neimportuje sa mi položka Zákazka, hoci ju mám vyplnenú. Kde je chyba? |
| Odpoveď: |
V importe záleží na poradí business objektov (BO). Poradie položiek v definícii musí zodpovedať tomu, ako ho vidíte vo vizuálnej podobe v ABRA Gen. Častým dôvodom, prečo sa nejaká položka nenaimportuje, je, že sa daná položka v importnej definícii nachádza na nesprávnom mieste. Položka Zákazka na doklade Objednávky prijaté: Položka Zákazka sa na doklade Objednávky prijaté nachádza až na druhom riadku za strediskom. Na riadku dokladov sú na prvých miestach položky ako Typ riadka, Sklad, Skladová karta atď. Až na druhom riadku je položka Strediská a za ním až Zákazka. Preto to aj v importnej definícii musí byť rovnako. Ako je vidieť na obrázku vyššie, pole Zákazka sa nachádza až za Strediskom. Ak by sme ho v definícii umiestnili na vyššiu pozíciu alebo by sme napríklad Typ riadka dali až na koniec, hodnota by sa v poli Zákazka importom nevyplnila. Ďalším veľmi častým dôvodom je to, že položka je umiestnená na správnej pozícii, ale nie je nastavená ako Aktívny, preto ju import ignoruje. Riešením je položku aktivovať pre import. Ak sa má položka importovať, je potrebné, aby bol prvok Aktívny nastavený na ÁNO. V opačnom prípade sa položka ignoruje. Môže existovať celý rad ďalších dôvodov, prečo import položky neprechádza, napríklad chybne napísaný SQL dotaz, ktorý nič nedohľadá a podobne. Avšak také prípady je už nutné riešiť individuálne. Vždy odporúčame pozrieť sa do agendy Servisná knižka, kde pod skratkou dokladov SEZ vznikne o importe záznam s logom. V logu možno príčinu neúspechu dohľadať. V servisnej knižke v Type záznamov SEZ nájdete na záložke Obsah kompletné informácie o priebehu importu. |
| Otázka: | Vykonávam import dokladu Ostatný výdaj a v riadku by som potreboval pole Text vyplniť ľubovoľnou textovou hodnotou + aktuálnym dátumom - 7 dní + názvom zákazky. Ako to vykonať? |
| Odpoveď: |
Agenda Definície definovateľných importov ponúka mnoho vlastností pre rôzne potreby. Pole Výraz umožní nadefinovať si vlastný výraz tak, aby okrem dát, ktoré sa nachádzajú v importnom súbore, doplnil importované pole o ďalšie potrebné znaky, dátum atď. Postup si vysvetlíme na príklade, kde budeme do poľa Text na doklade OSV importovať vlastný text, aktuálny dátum znížený o 30 dní a názov zákazky. V položke Text otvoríme šípkou pole Výraz na editáciu. Pri položke Text klikneme na šípku pri poli výraz, aby sa nám okno otvorilo na editáciu. Do otvoreného poľa Výraz zapíšeme nasledujúci výraz:
Prvý je vlastný text uvedený v apostrofoch. Nasleduje funkcia na formátovanie dátumu, kde si určíme formát, v akom potrebujeme dátum vracať. Ďalej je prevod dátumu na číslo a funkcia NxNow vráti aktuálny dátum v číselnej podobe, ktorý znížime o 30 dní. V nasledujúcom SQL dotaze zisťujeme názov zákazky podľa jej kódu, ktorý je obsiahnutý v importných dátach. Vďaka tomuto výrazu bude importovaný text vyzerať napríklad tak ako na obrázku nižšie: |
| Otázka: | Ako nainštalovať inštalačnú sadu? |
| Odpoveď: |
Inštalačnú sadu môžete potrebovať nainštalovať v mnohých prípadoch. Napr. ide o dodávaný katalógový doplnok k systému ABRA Gen, o súčasť iného dodávaného riešenia (napr. nejaké zákazkové úpravy od vášho konzultanta), môže ísť aj o niektorý z dodávaných príkladov na riešenie nejakej úlohy formou skriptovania. Prostredníctvom inštalačných sád možno v mnohých prípadoch "odovzdávať" aj rôzne nastavenia a definície medzi inštaláciami (napr. medzi skúšobnou inštaláciou a inštaláciou s ostrými dátami) a pod. Samotná inštalácia je jednoduchá. Postup:
Viď tiež kap. Inštalačné sady a kap. Sprievodca importom inštalačnej sady. |
| Otázka: | Ako v ABRA Gen pracovať s obchodnými zástupcami a partnermi? |
| Odpoveď: |
S partnerskou sieťou obchodných zástupcov rastie potenciál obchodnej firmy. Efektivita takej siete závisí od jasných kompetencií a dobrej organizácie. ABRA Gen pre Vás môže byť efektívnym nástrojom na správu partnerskej siete. Tu si môžeme načrtnúť modelové riešenie (samozrejme nie je jediné, iba jedno z možných a slúži na demonštráciu možností využitia systému): Sieť obchodných zástupcov môžete zadať napr. do číselníka obchodných prípadov a využiť tak existujúce obchodné reporty predaja cez Obchodné prípady. Väzbu medzi firmou a konkrétnym obchodníkom vytvoríme novou definovateľnou položkou. Tento postup opíšeme podrobnejšie:
|
| Otázka: | Potrebujem si nadefinovať vlastnú používateľsky definovateľnú číselníkovú položku, ale vo vyvolanom číselníku ponúkať len záznamy spĺňajúce určité podmienky. Ako na to? |
| Odpoveď: |
Obmedzenie ponúkaných záznamov číselníka vyvolaného ako výberového možno zabezpečiť použitím parametrov. Popis najobvyklejších parametrov viď Parametre číselníkov volaných z číselníkových položiek. Pozor, ako je uvedené v popise spomínanej položky Parametre, aké parametre sa nakoniec uplatnia pri volaní číselníka zo vstupných formulárov, závisí od toho, ako sú zadané vo vstupnom formulári (nielen v definícii číselníkovej položky). Iná možnosť je využitie skriptovania. Tj. vložiť číselníkovú položku do vstupného formulára ako číselník objektový a ponúkané záznamy dynamicky meniť podľa nadefinovaného skriptu. (Napr. ponúkať z číselníka len záznamy spĺňajúce určité podmienky podľa hodnôt editovaného záznamu agendy.) Viď tiež príklady skriptovania. |
| Otázka: | Chcel by som si nadefinovať vlastnú definovateľnú položku s históriou (s evidenciou hodnôt v histórii), ale táto možnosť sa mi neponúka, hoci pri iných položkách je. Ako to? Potreboval by som totiž do položky zadávať nielen hodnoty meniace sa v čase, ale aj príslušnú časovú platnosť (evidujem reklamné plochy, pričom sa platí len vtedy, ak je plocha skutočne obsadená. Keby som mohol vytvoriť UDP položku s názvom napr. "U_Used", typu boolean a s históriou, tak by som na základe toho mohol vyhodnocovať, ako bola reklamná plocha za nejaké časové obdobie využitá a spočítať, koľko by som mal za prenájom zaplatiť. |
| Odpoveď: |
Evidencia historických hodnôt k položkám je veľmi náročná na ďalšiu prácu s nimi, a ponúka sa teda len pri vybraných Business objektoch (typicky objektoch miezd), kde je táto vlastnosť nevyhnutná. Pri iných objektoch k dispozícii nie je. Viď tiež položka História. Avšak uvedený príklad možno riešiť bez ťažkostí iným spôsobom, napr. takto: Úloha vedie na akúsi subkolekciu riadkov. Teda založiť používateľskú tabuľku (vlastná úprava databázových objektov) a použiť skriptovanie na jej plnenie a na jej zobrazenie... (tj. skriptom do nej ukladať historické hodnoty pri zmene položky, v ktorej sa eviduje aktuálny stav obsadenosti plochy). |
| Otázka: | Existuje nejaké vzorové riešenie, ako upraviť štruktúru Business objektu? |
| Odpoveď: |
Vzorové riešenie nájdete medzi dodávanými príkladmi v adresári inštalácie ABRA Gen v podadresári Examples. Tu je k dispozícii okrem iného inštalačná sada, ktorá obsahuje balíček skriptov s ukážkou úpravy štruktúry BO:
|
| Otázka: | Ako predvyplniť importného manažéra pomocou skriptovania? |
| Odpoveď: |
Vzorové riešenie nájdete medzi dodávanými príkladmi v adresári inštalácie ABRA Gen v podadresári Examples. Tu je k dispozícii okrem iného inštalačná sada, ktorá obsahuje balíček skriptov s ukážkou práce s importným manažérom:
|
| Otázka: | Ako pripraviť MemoryDataset pre dopĺňanie definovateľných stĺpcov? |
| Odpoveď: |
Vzorové riešenie nájdete medzi dodávanými príkladmi v adresári inštalácie ABRA Gen v podadresári Examples. Tu je k dispozícii okrem iného inštalačná sada, ktorá obsahuje balíček skriptov s ukážkou prípravy MemoryDatasetu a DBGridu pre dopĺňanie definovateľných stĺpcov.
Vysvetľujúci komentár je po importe sady k dispozícii v agende Balíčky skriptov na záložke Poznámka pri balíčku eu.abra.example.TMemoryDataset. |
| Otázka: | Je možné prostredníctvom skriptovania zistiť, či záznam nie je aktuálne editovaný nejakým používateľom, aby pokus o zmenu nespadol? |
| Odpoveď: |
Je to možné, na triede TNxCustomBusinessObject sú na tento účel k dispozícii metódy (funkcie) IsEditLock a IsEditLockGUID. Metódy IsEditLock a IsEditUnlock v Class Exploreri. Pomocou súvisiacej metódy EditLock je možné editačný zámok prostredníctvom skriptovania vytvoriť, prípadne pomocou metódy EditUnlock odstrániť. Podrobnejšie informácie o zamykaní záznamov nájdete v kapitole Kolízie pri ukladaní do databázy (transakcie, zamykanie, object version). |
| Otázka: |
Potrebujem prostredníctvom skriptovania do systému ABRA Gen hromadne naimportovať zo súboru väčšie množstvo dokladov. Každý riadok dokladu obsahuje množstvo a celkovú cenu.
Každopádne v oboch prípadoch dostanem hlásenie "Nesúhlasí celková cena voči jednotkovej cene a množstvu". Ako túto situáciu riešiť, tj. ako správne zadať celkovú a jednotkovú cenu? |
| Odpoveď: |
Pokiaľ sú v systéme ABRA Gen akýmkoľvek spôsobom (vrátane Skriptování alebo Web API) menené ceny na riadkoch dokladov, pri ukladaní prebieha validácia vzájomného vzťahu jednotkovej a celkovej ceny. Pokiaľ jednotková cena nie je nulová a zároveň nie je nulová ani celková cena, musí platiť rovnosť Pokiaľ celková cena a množstvo nie sú navzájom bezo zvyšku deliteľné, môže pri pokusoch o nastavovanie jednotkovej ceny nastať uvedený problém. Spoľahlivým spôsobom je explicitne nastavovať jednotkovú cenu na 0. Na rovnaký problém je možné naraziť pri vytváraní alebo aktualizácii dokladu prostredníctvom Web API. Viď príklad Vytvorenie skladovej príjemky v kapitole Knihovna praktických příkladů Web API. |
| Otázka: | Existuje nejaké riešenie práce s kasou a účtenkami maloobchodného predaja pomocou skriptovania? |
| Odpoveď: |
Vzorové riešenie nájdete medzi dodávanými príkladmi v adresári inštalácie ABRA Gen v podadresári Examples. Tu je k dispozícii mj. inštalačná sada, ktorá obsahuje balíček skriptov s ukážkou práce s kasou a účtenkami maloobchodného predaja:
Od verzie 19.4.1 vrátane je v skriptovaní k dispozícii funkcia NxPOSCloseDocumentByManager, ktorá umožňuje zo skriptovania uzavrieť účtenku rovnakým spôsobom, ako keby bola uzavretá z aplikácie, so všetkými súvisiacimi procesmi (zaokrúhľovanie, vracanie atď.). |
| Otázka: | Je možné pomocou skriptovania komunikovať so zariadením pripojeným cez sériový port? |
| Odpoveď: |
Áno, v skriptovaní je implementovaná trieda TNxComPort ponúkajúca potrebnú funkcionalitu. Použitie je zrejmé z príkladu. Nasledujúci ilustračný príklad pridá do zvolenej agendy (Druh skriptu: Agenda) funkčné tlačidlo Získať hmotnosť na načítanie hmotnosti z váhy Tonava pripojenej na porte COM3 a následné zobrazenie načítanej hodnoty v informačnom okne.
|
| Otázka: | Existuje nejaké riešenie práce s ochranou dát aj v rámci skriptovania? |
| Odpoveď: |
Áno. Viď otázku Je možné využívať funkcionalitu ochrany dát aj v rámci zákazkových úprav (skriptovanie, OLE a pod.) v sekcii Ochrana dát. |
| Otázka: | Ako do ABRA Gen zadať azbuku a iné podobné znaky? |
| Odpoveď: |
Od verzie 22.1.x je možné zadávať Unicode znaky takmer do všetkých položiek v ABRA Gen. To znamená, že nie je potrebné ako v minulosti vytvárať špeciálne používateľské položky, aby bolo možné tieto špeciálne znaky zadávať. Znaky sa vďaka kódovaniu Unicode ukladajú priamo do databázy. V prípade, že ešte nemáte Unicode verziu systému ABRA Gen, odporúčame najprv pozrieť sa na stránku venovanú prechodu na unicode verziu. |













v pravej hornej časti záložky:










