Пару дней назад возникла задача формирования с помощью SQL запроса файла для Service Connect’а только тогда, когда предыдущие файлы Service Connect уже обработал. Ну, чтобы было понятно (или чтобы окончательно запутать 🙂 ) речь идёт про себестоимость полуфабриката, внутри которого используется другой полуфабрикат. И нужно, чтобы сначала сформировалась себестоимость одного полуфабриката, а на её основании уже посчитать себестоимость полуфабриката, в который он входит. Определил, что есть 3 варианта:
1. Ручной — Сделать первый шаг. Затем подождать, сделать второй шаг. Вариант рабочий, но мне сильно не нравится
2. Использовать директиву WAITFOR DELAY ’00:00:15′ — задержка выполнения последующих шагов на 15 секунд. Тоже рабочий вариант теоретически, но тоже не идеальный, вдруг этих 15 секунд не хватит
3. Сделать первый шаг, затем создать XML файл для запуска хранимой процедуры 2-го шага. Можно, кстати, с задержкой создания. Тогда обработаются файлы первого шага (создадутся полу-полуфабрикаты), после этого обработается файл с инструкцией по запуску ХП 2-го шага и в этот момент себестоимость этих полу-полуфабрикатов уже будет актуальной. Этот вариант мне нравится больше всего.
Всё бы ничего, но нет образца файла, как напрямую (без Work Flow) обратиться к менеджеру Generic Query. Обычно эти примеры находятся в папке iScala\Tutorials\SCSSamples\Managers. Но тут ничего подобного нет:
Пришлось изобретать методом «научного тыка», в результате нашёл требуемую структуру. Вдруг вам тоже нужно?
<msg:msg xsi:schemaLocation="http://Epicor.com/InternalMessage/1.1 http://scshost/schemas/Epicor/ScaInternalMsg.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:msg="http://Epicor.com/InternalMessage/1.1">
<msg:req tag="Generic Query">
<msg:dta>
<dta:GenericQueryRequest xmlns:dta="http://www.scala.net/GenericQueryRequest/1.1">
<dta:Query>usr_SCS_CreateStockTransactionsFromBoMByMicrosFileCSVStep2</dta:Query>
<dta:Param Name="File">01_20250601_063001.csv</dta:Param>
<dta:Param Name="CATALOG_NAME">H:\TEST</dta:Param>
</dta:GenericQueryRequest>
</msg:dta>
<msg:ctx>
<SrvLocation/>
<UserName>ServiceConnectUser</UserName>
<UserPwd>UserPassword</UserPwd>
<CompanyCode>01</CompanyCode>
<FiscalYear>2025</FiscalYear>
</msg:ctx>
</msg:req>
</msg:msg>


