【问题标题】:SFTP Client LIST service parameter "ModificationTime"SFTP 客户端 LIST 服务参数“ModificationTime”
【发布时间】:2021-01-21 16:37:14
【问题描述】:

要求:- 从服务器中挑选 5 分钟前修改过的文件并移动到本地服务器。

我想了解 Sterling B2B Integrator 中的 SFTP 客户端 LIST 服务,它有一个参数“ModificationTime”我想用它来找出最后修改的文件 5 分钟前它应该被挑选并转移到本地服务器。这个参数有帮助吗?

这就是我正在尝试的

    <operation name="SFTP Client LIST Service">
        <participant name="SFTPClientList"/>
        <output message="SFTPClientListServiceTypeInputMessage">
            <assign to="RemoteFileName" from="/ProcessData/Interface/REMOTEFILEPATTERN/text()"/>
            <assign to="ModificationTime">300</assign>
            <assign to="ResponseTimeout">120</assign>
            <assign to="WF_RUNTIME_OVERRIDE_PERSISTENCE_LEVEL">PERSISTENCE_FULL</assign>
            <assign to="." from="*"/>
        </output>
        <input message="inmsg">
            <assign to="." from="*"/>
        </input>
    </operation>

【问题讨论】:

    标签: edi business-process ibm-sterling


    【解决方案1】:

    ModificationTime 是一个输出参数,它是远程 sftp 命令的结果。

    查看示例 BP,列出 TXT (*.txt) 文件:

    <process name = "Demo_BP_SFTP_List"> 
        
    <sequence name="Demo_BP_SFTP_List">
    
        <!-- Begin Session -->
        <operation name="SFTP Client Begin Session Service">
          <participant name="SFTPClientBeginSession"/>
          <output message="SFTPClientBeginSessionServiceTypeInputMessage">
            <assign to="SFTPClientAdapter">SFTPClientAdapter</assign>
            <assign to="RemoteHost">127.0.0.1</assign>
            <assign to="RemotePort">22</assign>
            <assign to="RemoteUserId">Demo_Remote_SFTP</assign>
            <assign to="RemotePasswd">passw0rd</assign>
            <assign to="PreferredAuthenticationMethod">password</assign>
            <assign to="KnownHostKeyId">442297176384f4ba2node1</assign>
            <assign to="." from="*"></assign>
          </output>
          <input message="inmsg">
            <assign to="SFTPClientBeginSessionServiceResults" from="*"></assign>
          </input>
        </operation>
    
        <operation name="SFTP Client LIST Service">
            <participant name="SFTPClientList"/>
            <output message="SFTPClientListServiceTypeInputMessage">
                <assign to="RemoteFileName">*.txt</assign>
                <assign to="SessionToken" from="SFTPClientBeginSessionServiceResults/SessionToken/text()"></assign>
                <assign to="." from="*"/>
            </output>
            <input message="inmsg">
                <assign to="SFTPClientLISTServiceResults" from="*"></assign>
            </input>
        </operation>
                          
        <operation name="SFTP Client End Session Service">
            <participant name="SFTPClientEndSession"/>
            <output message="SFTPClientEndSessionServiceTypeInputMessage">
                <assign to="SessionToken" from="SFTPClientBeginSessionServiceResults/SessionToken/text()"></assign>
                <assign to="." from="*"></assign>
            </output>
            <input message="inmsg">
                <assign to="SFTPClientEndSessionServiceResults" from="*"></assign>
            </input>
        </operation>
    
    </sequence>
    </process>
    

    输出将是:

    </ProcessData>
    ....
      </SFTPClientLISTServiceResults>
    ....
        <Files>
          <File>
            <Name>testdata01.txt</Name>
            <Size>11</Size>
            <Type>Regular</Type>
            <Permissions>-rw-rw-r--</Permissions>
            <ModificationTime>1611017370</ModificationTime>
            <Owner>Demo_Remote_SFTP</Owner>
            <Group>Demo_Remote_SFTP</Group>
          </File>
          <File>
            <Name>testdata02.txt</Name>
            <Size>11</Size>
            <Type>Regular</Type>
            <Permissions>-rw-rw-r--</Permissions>
            <ModificationTime>1611017385</ModificationTime>
            <Owner>Demo_Remote_SFTP</Owner>
            <Group>Demo_Remote_SFTP</Group>
          </File>
          <File>
            <Name>testdata03.txt</Name>
            <Size>12</Size>
            <Type>Regular</Type>
            <Permissions>-rw-rw-r--</Permissions>
            <ModificationTime>1611017399</ModificationTime>
            <Owner>Demo_Remote_SFTP</Owner>
            <Group>Demo_Remote_SFTP</Group>
          </File>
        </Files>
      </SFTPClientLISTServiceResults>
    </ProcessData>
    

    您需要创建一个循环并检查 ModificationTime 是否小于您的当前时间减去 5 分钟,然后执行 SFTP 客户端 GET 服务

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多