Chyba synchronizace objednávky, když není zadána společnost
Popis
Při vložení objednávky, která nemá vyplněnou společnost, do eWay-CRM® a odeslání přes workflow do Pohody, dojde k chybě synchronizace. V logu je uvedena následující chyba:
HASH: 54BAF74BA4519B9861462D1325505FB1 Synchronization failed eWay.Core.Exceptions.StoreException: Uploading of items failed. ---> eWay.Core.Exceptions.StoreException: Cannot save items to webservice to folder 'Relations' ---> eWay.Core.Exceptions.eWayWebServiceException: Web service returned an error (rcGeneralError): Problem executing trigger 'eWay.WebService.Triggers.PohodaSync.SynchronizeItemsToPohodaTrigger' on item '32c0ad19-c669-11e5-9d63-8cef4587255d'. Details: Unable to import item '11d12023-c669-11e5-9d63-8cef4587255d' from folder 'Carts' to Pohoda: This element is required for creating of document: error=108, xpath=dat:dataPack/dat:dataPackItem[1]/ord:order/ord:orderHeader/ord:partnerIdentity, valuRequested=, valueProduced= at eWay.Core.WebService.BasicItemStore.SaveItems(OutlookItem[] items) in c:\CC.NET\Projects\NAnt\Sources\eWayLibrary\eWayShared\WebService\BasicItemStore.cs:line 176 at eWay.Core.WSDataInterface.eWayItemStore.SaveItems(OutlookItem[] items) in c:\CC.NET\Projects\NAnt\Sources\eWayLibrary\eWayWSDataInterface\eWayItemStore.cs:line 422 --- End of inner exception stack trace --- at eWay.Core.WSDataInterface.eWayItemStore.SaveItems(OutlookItem[] items) in c:\CC.NET\Projects\NAnt\Sources\eWayLibrary\eWayWSDataInterface\eWayItemStore.cs:line 438 at eWay.Core.WebService.BasicItemStore.SaveItem(OutlookItem item) in c:\CC.NET\Projects\NAnt\Sources\eWayLibrary\eWayShared\WebService\BasicItemStore.cs:line 159 at eWay.Core.CachedDataInterface.CachedItemStore.SaveLocalItemToRemoteStore(Application application, SynchronizationItem synchronizationSetting, OutlookItem localItem) in c:\CC.NET\Projects\NAnt\Sources\eWayLibrary\CachedDataInterface\CachedItemStore.cs:line 1112 at eWay.Core.CachedDataInterface.CachedItemStore.UploadItem(Application application, ItemVersion item, Boolean remove) in c:\CC.NET\Projects\NAnt\Sources\eWayLibrary\CachedDataInterface\CachedItemStore.cs:line 1242 --- End of inner exception stack trace --- at eWay.Core.CachedDataInterface.CachedItemStore.UploadItem(Application application, ItemVersion item, Boolean remove) in c:\CC.NET\Projects\NAnt\Sources\eWayLibrary\CachedDataInterface\CachedItemStore.cs:line 1252 at eWay.StandardEdition.Synchronization.SynchronizeThread.<>c__DisplayClass4.<UploadItem>b__3() in c:\CC.NET\Projects\NAnt\Sources\eWayLibrary\eWaySynchronization\SynchronizeThread.cs:line 1002 at eWay.Core.Data.TransactionRepeater.RunInTransaction(Func`1 transactionCommands, Boolean allowBulkInsert) in c:\CC.NET\Projects\NAnt\Sources\eWayLibrary\eWayShared\Data\TransactionRepeater.cs:line 96 at eWay.StandardEdition.Synchronization.SynchronizeThread.UploadItem(Boolean& synchronizationOK, Boolean& newData, DateTime till, Application outlookApplication) in c:\CC.NET\Projects\NAnt\Sources\eWayLibrary\eWaySynchronization\SynchronizeThread.cs:line 992 at eWay.StandardEdition.Synchronization.SynchronizeThread.TryUploadItem(Boolean& synchronizationOK, Boolean& newData, DateTime start, Application outlookApplication) in c:\CC.NET\Projects\NAnt\Sources\eWayLibrary\eWaySynchronization\SynchronizeThread.cs:line 974 at eWay.StandardEdition.Synchronization.SynchronizeThread.UploadItems(Boolean& synchronizationOK, Boolean& newData, List`1 lastUploadedItems) in c:\CC.NET\Projects\NAnt\Sources\eWayLibrary\eWaySynchronization\SynchronizeThread.cs:line 847 --- END TRACE ---
V logu Pohody se pak objevuje následující chyba:
<rdc:detail> <rdc:state>error</rdc:state> <rdc:errno>108</rdc:errno> <rdc:note>Tento element je vyžadován pro vytvoření dokladu</rdc:note> <rdc:XPath>dat:dataPack/dat:dataPackItem[1]/ord:order/ord:orderHeader/ord:partnerIdentity</rdc:XPath> </rdc:detail>
Verze
Všechny verze eWay-CRM®
Obtížnost řešení
Střední
Postup řešení
Jedná se o chybu, která vznikla ve chvíli, kdy měl být doklad synchronizován do Pohody bez toho, aby byla vyplněna společnost. V případě objednávky se jedná o povinné pole. Před synchronizací je nutné mít u objednávky vyplněnou společnost.
Varianta 1: Okamžité řešení
Chybu lze napravit jednoduše smazáním přijaté objednávky ze serveru, nejlépe procedurou eWaySP_DeleteCart. Po smazání objednávky je možné vytvořit novou a po vyplnění společnosti se provede správná synchronizace.
V případě, kdy chcete data zachovat, je možné doplnit společnost přes databázi (doklad je na lokální stanici již zamčený).
Varianta 2: Dlouhodobé řešení
Aby uživatelé nezapomínali na to, že je společnost u objednávky potřeba vyplnit, vytvoří se workflow akce, která zkontroluje, zda je při přechodu do daného stavu pole Odběratel vyplněno.
Pole odběratel je možné nastavit jako povinnou položku pro všechny doklady anebo pouze pro konkrétní typy dokladu - záleží na preferenci klienta.