function and the file is generating in the SpecialFolder.UserData as expected.
However, does anyone know of there is there any functionality in the Ice.Contracts.FileTransferSvcContract to copy to a local network drive.
We are on-prem and my contingency is some kind of background process running on the server that copies the files , but ideally, I would like this to be entirely within Epicor.
I honestly don’t like hardcoding file locations in code. At least one upgrade has burned me because someone did, and the network location changed - even got burned when the server moved from a colocation to Azure and the local file system was different.
It really depends on your business problem that you’re trying to solve. What about the current process requires a file written to a specific network location?
Have we considered using the Bartender API to just send the data directly and skip the file system? @Chris_Conn has done some excellent work here and has some demos on the site.
Definitely my goto, run a BAQ, get the data i need, look up the Printer maintenance UNC path for the user selected printer and go to town (or let BT go to town).
I’ve even proven I can hijack SSRS label print requests and convert them to BT calls. Certainly not supported, but doable.
Delimma is the original requirement, speed. How much overhead would that take? Probably not much. Perhaps using DFS to just copy rather than an custom method.
Ad far as path locations @Mark_Wonsil mentioned, the solution @utaylor was eluding to uses user codes to store this information on a per environment and per label basis so it removes the hard coding aspects.
Hope that helps.
Whilst using the Bartender Rest Api, it would ever as per peeformant as dumping the file directly to the printer. Which sounds like a fun project…
We looked at Bartender in the past (2016) and it was too slow for our requirements.
It may be worth a revisit, but I am concerned that the solution involves sending data to the API (in the cloud) and then the API contact the Bartender printer locally sounds ‘clunky’.
Unless Epicor relent on this cull then It is looking like some kind of sync software that auto copies files to the printer.
Agreed - looks like an API approach is the way to go.
It would be really useful if Epicor could give us some clear release schedules (i.e. System.IO will not be available after release ???) so that we know how to prioritise removing calls to System.IO from our functions/ bpms.
<businessObject>Ice.Proxy.Lib.FileTransferImpl</businessObject>
<methodName>DownloadFile</methodName>
<appServerUri>https://myserver/KineticTest/</appServerUri>
<returnType>System.Byte[]</returnType>
<localTime>8/29/2024 07:58:20:1775217</localTime>
<threadID>62</threadID>
<correlationId>1621cac7-069f-452c-b1b3-4cc00ccceabb</correlationId>
<executionTime total="107" roundTrip="106" channel="0" bpm="0" bpmDataForm="0" other="1" />
<retries>0</retries>
<parameters>
<parameter name="folder" type="Epicor.ServiceModel.Utilities.SpecialFolder"><![CDATA[CompanyData]]></parameter>
<parameter name="serverPath" type="System.String"><![CDATA[Log\Chris.Conn\AUF00000000001-57594036409.log]]></parameter>
</parameters>
</tracePacket>
Example of "Company" download type
Note Company (as in the folder) is implied by the session
Went into VS - built a wep api project - deployed to the test server - changed the function (http.client) - it works
I feel like I’ve had a glimpse into near past - Apis make so much sense - but I guess that’s why the likes of Epicor (sap, oracle et al) have been doing it for years.