Advertisement
Guest User

Untitled

a guest
Jan 18th, 2019
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.08 KB | None | 0 0
  1.  
  2. 5. Находим документы типа ARC_ElectronicDoc
  3. селектом
  4. select * from DC_ARC_ElectronicDoc dc
  5. where dc.docid in (
  6. select docid from doc
  7. where doc.doctypeId = (select doctypeid from DOCTYPE where systemname='ARC_ElectronicDoc')
  8. and doc.DOCSTATEID = (select DOCSTATEID from DOCSTATE where DOCSTATE.SYSTEMNAME = '000') and doc.CREATEDATE >=to_date('26.12.2018','dd.mm.yyyy')) and dc.DOCTYPE = 'Response' and dc.RESPONCETOED is null;
  9. Нашли один - 910588.
  10.  
  11. 5.1. Находим первый подходящий документ ARC_ElectronicDoc
  12. селектом
  13. select * from DC_ARC_ElectronicDoc dc where dc.docid in (select docid from doc where doc.doctypeId = (select doctypeid from DOCTYPE where systemname='ARC_ElectronicDoc')) and PACKAGEID = 'b666fd58-1e4f-41be-b292-925bda2d9551' and DOCTYPE = 'transferDocumentReceipt';
  14. Нашли 910587.
  15.  
  16. 5.2. Находим все подходящие справочники ARC_LifeCyclesEvents
  17. селектом
  18. select * from DC_ARC_LifeCyclesEvents dc where dc.DOCID in (select DICTID from DICT where dict.DOCTYPEID =(select DOCTYPEID from DOCTYPE where systemname = 'ARC_LifeCyclesEvents')) and dc.BEGINSTATUS = '000' and dc.ENDSTATUS = '999' and dc.DOCTYPESOURCE ='Response' and dc.STATUSCODE in (select VALUE from FS_PARAMETERSLIST_LIST tbl where tbl.DOCID = 910588 and tbl.PARAMETER='statusCode') and dc.DOCID in (select DOCID from FS_TECHTABLE_LIST thtbl where thtbl.CODETRANSPORT = 'R_02');
  19. Нашлось два - 7570332 (2 строки в техтаблице) и 7582304 (1 строка в техтаблице).
  20.  
  21. ***Обрабатываем запись 7570332.
  22.  
  23. Сначала из одной строки техтаблицы для поиска документов ARC_ElectronicDoc берем
  24. скрипт
  25. select * from DC_ARC_ElectronicDoc dc where dc.DOCID in (select DOCID from DOC where doc.DOCTYPEID = (select DOCTYPEID from DOCTYPE where SYSTEMNAME = 'ARC_ElectronicDoc')) and dc.DOCTYPE = 'TypeForOptTest' and (PACKAGEID = 'b666fd58-1e4f-41be-b292-925bda2d9551');
  26. По нему ничего не нашлось.
  27. -------------------------------------------------------------------------
  28. Поэтому переходим к другой строке техтаблицы справочника 7570332.
  29. ДОЛЖНЫ ПЕРЕЙТИ К ОБРАБОТКЕ ВТОРОЙ СТРОКИ ТЕХТАБЛИЦЫ СПРАВОЧНИКА 7570332, НО ПЕРЕХОДИМ К ОБРАБОТКЕ ДРУГОЙ ЗАПИСИ СПРАВОЧНИКА (7582304)
  30.  
  31.  
  32.  
  33.  
  34.  
  35. -------------------------------------------------------------------------
  36. ***Теперь обрабатываем запись 7582304
  37. Из строки техтаблицы для поиска документов ARC_ElectronicDoc берем
  38. скрипт
  39. select * from DC_ARC_ElectronicDoc dc where dc.DOCID in (select DOCID from DOC where doc.DOCTYPEID = (select DOCTYPEID from DOCTYPE where SYSTEMNAME = 'ARC_ElectronicDoc')) and dc.DOCTYPE = 'transferDocumentReceipt' and (PACKAGEID = 'b666fd58-1e4f-41be-b292-925bda2d9551');
  40. Нашелся один - 910587.
  41.  
  42. Поскольку у справочника 7582304 в поле DICT.CONNECTDOCS лежит true - создаем связь 910587 с 910588.
  43. Поскольку у справочника 7582304 в поле DICT.CREATEEVENT лежит true - создаем новый документ ARC_Events.
  44. Поля нового События заполняем (в т.ч. по таблице FS_TABLE_FILLEVENT_LIST обрабатываемого справочника (7582304) ARC_LifeCyclesEvents).
  45.  
  46. Затем ищем первый подходящий справочник ARC_EventTypes
  47. селектом
  48. select * from DC_ARC_EventTypes where EVENTSCODE = 'ShippedPkg';
  49. Находим 5586307. Заполняем по нему поля нового События.
  50.  
  51. Затем ищем все подходящие справочники ARC_ActionsFromEvent
  52. селектом
  53. select * from DC_ARC_ActionsFromEvent where EVENTSCODE = 'ShippedPkg';
  54. Нашлось 22 справочника. Из них нас интересуют только 7586304, 7570329 и 7582305 поскольку у них поля DICT.FILTERS и DICT.ACTIONS не пусты.
  55.  
  56. /// Ищем документы ARC_ElectronicDoc полученным из справочника 7586304
  57. скриптом
  58. select * from DC_ARC_ElectronicDoc dc where dc.DOCID in (select DOCID from DOC where doc.DOCTYPEID = (select DOCTYPEID from DOCTYPE where systemname = 'ARC_ElectronicDoc')) and dc.DOCTYPE = 'TypeForOptTest' and dc.DOCID in (select DOCID from DOC where doc.DOCSTATEID = (select DOCSTATEID from DOCSTATE where systemname = '880'))and SYSTEMGUID = 'b666fd58-1e4f-41be-b292-925bda2d9451';
  59. Не находим ни одного.
  60.  
  61. /// Ищем документы ARC_ElectronicDoc полученным из справочника 7570329
  62. скриптом
  63. select * from DC_ARC_ElectronicDoc dc where dc.DOCID in (select DOCID from DOC where doc.DOCTYPEID = (select DOCTYPEID from DOCTYPE where systemname = 'ARC_ElectronicDoc')) and dc.DOCTYPE = 'TypeForOptTest' and dc.DOCID in (select DOCID from DOC where doc.DOCSTATEID = (select DOCSTATEID from DOCSTATE where systemname = '002'))and SYSTEMGUID = 'b666fd58-1e4f-41be-b292-925bda2d9451';
  64. Не находим ни одного.
  65.  
  66. /// Ищем документы ARC_ElectronicDoc полученным из справочника 7582305
  67. скриптом
  68. select * from DC_ARC_ElectronicDoc dc where dc.DOCID in (select DOCID from DOC where doc.DOCTYPEID = (select DOCTYPEID from DOCTYPE where systemname = 'ARC_ElectronicDoc')) and dc.DOCTYPE = 'transferDocumentReceipt' and dc.DOCID in (select DOCID from DOC where doc.DOCSTATEID = (select DOCSTATEID from DOCSTATE where systemname = '002'))and SYSTEMGUID = 'b666fd58-1e4f-41be-b292-925bda2d9451';
  69. Находим один - 910587.
  70.  
  71. Поскольку у найденного справочника 7582305 в поле DICT.BEGINSTATUS лежит 002, а в поле DICT.ENDSTATUS лежит 999,
  72. выполняем переход найденного документа 910587 на статус 999.
  73.  
  74. Переходим к поиску первого подходящего документа ARC_ElectronicDoc
  75. селектом
  76. select * from DC_ARC_ElectronicDoc where SYSTEMGUID = 'b666fd58-1e4f-41be-b292-925bda2d9451';
  77. Находим 910587. Берем у него значения полей DOC.IDSENDER, DOC.IDRECIEVER, DOC.DOCTYPE.
  78.  
  79. Ищем первый подходящий справочник ARC_Routes
  80. селектом
  81. select * from DC_ARC_Routes dc where dc.DOCID in (select DICTID from DICT where dict.DOCTYPEID = (select DOCTYPEID from DOCTYPE where systemname = 'ARC_Routes')) and dc.SYSTEMSENDER = 'PUR' and dc.SYSTEMRECEIVER = 'ASFK' and exists (select * from FS_ARC_ROUTESTABLE_LIST tbl where tbl.DOCID in (select DOCID from DC_ARC_Routes dc where dc.DOCID in (select DICTID from DICT where dict.DOCTYPEID = (select DOCTYPEID from DOCTYPE where systemname = 'ARC_Routes')) and dc.SYSTEMSENDER = 'PUR' and dc.SYSTEMRECEIVER = 'ASFK') and tbl.DOCTYPE = 'transferDocumentReceipt');
  82. Нашли 5546314.
  83.  
  84. Из его поля DICT.SERVICERECEVER заполняем поле DOC.SERVICETYPE нового События значением "Сервис приема документов (АСФК)".
  85.  
  86. Затем (поскольку во внутреннем параметре у нас лежит 1) ищем первый подходящий справочник ARC_Services
  87. селектом
  88. select * from DC_ARC_Services dc where dc.SERVICETYPE = 'Сервис приема документов (АСФК)';
  89. Находим 5542306.
  90. Берем его docState.name. Поскольку docState.name равно значению поля DOC.STATUSSERV созданного События (Доступен),
  91. ничего не делаем.
  92.  
  93. 5.3. Вызываем пустой переход ЖЦ для обновления системного статуcа обрабатываемого документа (910588) ARC_ElectronicDoc на статус 999.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement