如何使用RPGLE检索SharePoint 2013文档



我需要编程地检索SharePoint 2013中的文档,以在IBM i上运行的RPGLE程序中使用。有人做过类似的事情吗?至少,如果我可以将文档从SharePoint中删除并进入网络文件共享,我将知道如何从那里获取它。我已经探索了许多不同的可能性,但我不知道C#或.NET,我正在努力寻找可以适应我工作的东西。

如果RPGLE支持它,则可以通过REST API访问SharePoint 2013数据。您可能需要为此设置适当的身份验证。

可以在MSDN

上找到REST API的文档

假设您可以在rpg中解析文档,则可以使用SQL函数httpgetBlob与SharePoint REST REST API GETFOLDERBYSERVERRERATIODURL通过http

来检索文档

在sqlrpgle中使用httpgetblob sql函数。示例在此处IBM I SQL HTTP服务,请确保通过SharePoint授权/标记:

url: http://site url/_api/web/GetFileByServerRelativeUrl('/Folder Name/file name')/$value
method: GET
headers:
    Authorization: "Bearer " + accessToken

如果您的文档很长,则应将其写入IF,如先前的链接所述,否则RPG变量长度可能不够。

更新:我能够通过在RPG程序中使用Scott Klement的开源HTTPAPI来实现我要做的事情:

   Ctl-opt DftActGrp(*No);
   Ctl-opt BndDir('HTTPAPI');
  /include libhttp/qrpglesrc,httpapi_h
   Dcl-s rc       Int(10);
   Dcl-s url      Varchar(300);
   Dcl-s ifs      Varchar(256);
   Dcl-s pwtype   Char(1);
   Dcl-s userid   Char(50);
   Dcl-s password Char(50);
  // Turn on debugging for troubleshooting. It will write a debug log file
  // to the IFS in /tmp/httpapi_debug.txt
   http_debug(*ON);
   url = 'http://sharepoint/path/to/file/thefile.pdf';
   ifs = '/temp/myfile.pdf';
  // Set password type for SharePoint's NTLM authentication requirement
   pwtype = HTTP_AUTH_NTLM;
  // Set user and password
   userid = 'theuser';
   password = 'thepassword';
  // Set credentials for authentication
   http_setAuth(pwtype: userid: password);
  // Call HTTPAPI's routine to download the file to the IFS
   rc = http_req('GET': url: ifs);
  // End gracefully if error
   if rc <> 1;
     http_crash();
   endif;
   *inlr = *on;

可以在此处找到更多详细信息。

相关内容

  • 没有找到相关文章

最新更新