2 Replies Latest reply on Nov 18, 2019 9:49 PM by Scott_D

    DocuPresentment ATCReceiveFile

    Jason Glodowski

      Today when calling docupresentment, we are attaching a base64 encoded message to the DSIMessage, and sending it through the queue. We then run the rule below to run RP:

       

      ;Run RP via IDS
      [ReqType:RunSysRP]
       function        = rpdw32->RPDStopRPRun
       function        = atcw32->ATCLogTransaction
       function        = atcw32->ATCLoadAttachment
       function        = atcw32->ATCUnloadAttachment
       function        = atcw32->ATCReceiveFile,DATAFILE,EXTRFILE,\\mypath\EXTR*.xml 
       function        = dprw32->DPRSetConfig
       function        = rpdw32->RPDCheckRPRun
       function        = rpdw32->RPDCreateJob
       function        = rpdw32->RPDProcessJob
      

       

      In the future we would like to be able to provide the location of the file rather than including it as part of the DSIMessage.

       

      Has anyone else done this or is it even possible to do this? if so, does someone have information about how to accomplish this (what changes are needed to the DSIMessage and the ReqType)?

       

      Thanks,

      Jason

        • 1. Re: DocuPresentment ATCReceiveFile
          AndyL-Oracle

          Hi Jason,

           

          Great question. The parameters of the ATCRecieve file rule are:

          • Prefix - the attachment variable holding the input data (from the request - DATAFILE)
          • AttachmentVariable - The attachment variable to hold the extract file location (EXTRFILE)
          • FileName - The path and naming convention for the extract file.
          • Disposition (optional) - use "keep" to prevent the received file from being deleted (this is used for debugging).

           

          The purpose of this rule is to receive a file from a request and dump it to disk. The path/filename of the file is stored in the attachment variable that is the second parameter (EXTRFILE). So, you could simply remove this rule and supply an EXTRFILE attachment variable with a path and filename of your extract data and not send it via the queue. You would have to ensure that the file is present and accessible to the IDS process, and you are also responsible for cleaning up the file after it is no longer needed. The only change to make this work is one of these options:

          • Comment-out the ATCReceiveFile rule in your request type. Place a semicolon to the left of "function", e.g.

             

            ;function=atcw32->ATCReceiveFile...
          • Or, pass the EXTRFILE=\\mypath\EXTRabc123.xml attachment variable and do not pass the DATAFILE=xxx attachment variable.

           

          My suggestion is the latter, since it will support both uses. If the file is attached as DATAFILE, it will still work - but if the path/filename is passed as EXTRFILE, the ATCReceiveFile rule will simply do nothing.

           

          -A

          • 2. Re: DocuPresentment ATCReceiveFile
            Scott_D

            I am trying to experiment with this, utilizing option 2.  My new Message looks like:

            <?xml version="1.0" encoding="UTF-8"?>

            <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">

                <SOAP-ENV:Body>

                    <DSIMSG VERSION="100.020.0">

                        <CTLBLOCK>

                            <REQTYPE>RunSysRP</REQTYPE>

                            <UNIQUE_ID>18684cbfa47d4403968c817ba80965eb</UNIQUE_ID>

                        </CTLBLOCK>

                        <MSGVARS>

                            <VAR NAME="CONFIG">DO</VAR>

                            <VAR NAME="EXTRFILE">\\pathtofilehere\BB31F7AB-ED24-4134-9FD6-BF28F6786455.xml</VAR>

                            <VAR NAME="REQTYPE">RunSysRP</VAR>

                            <VAR NAME="SENTRYID">BB31F7AB-ED24-4134-9FD6-BF28F6786455</VAR>

                            <VAR NAME="USERID">067663</VAR>

                        </MSGVARS>

                    </DSIMSG>

                </SOAP-ENV:Body>

            </SOAP-ENV:Envelope>

             

            but it is still trying to create the file and use that:

             

            DM11084:  Error in EXTInitXtr(): Unable to GENOpenExtFile(<\\mypath\extr9114e0da-f9ec-99bc-025a-0b73daf8e175-0-ids-1-.xml>,).