所以我对此并没有多大希望,但是在这里。我正在使用DocuSign Connect将信封数据和文档推送到我的http监听器。有没有办法将完成证书重命名为没有在名称末尾附加信封ID的地方?
我问,因为当我们的监听器拉出XML文件,解析它并将PDF写入单独的文件时,我正在创建一个以信封ID命名的文件夹,并将它们放在带有我们CSV文件的文件夹中。当Filer读取CSV文件时,我们让Oracle获取所有PDF,但是当它(Filer)命中证书时,名称太长(36个字符限制)并且它出错。我们有一个可能的解决方法,但我想我会问,看看是否有更简单的方法。
答案 0 :(得分:1)
你负责写出实际文件,对吗?您可以设置重命名功能以获取模式,并将其重命名为您喜欢的任何模式。
答案 1 :(得分:0)
我认为您不能修改DocuSign Connect服务发出的文件名,但到目前为止我可以想到三种解决方法:
1. Have a script rename the file to a shorter name before it's parsed.
2. Make an API call to retrieve the envelope certificate.
第一个选项可能是最简单的,也许是您已经想到的解决方法。如果您只是将文件重命名为适合您需要的更短的文件。
对于#2,DocuSign Connect的优点在于,由于平台正在向您推送数据,而不是您从系统中提取数据,因此它不会计入您的每小时api呼叫限制,但这是一个非常高的限制,这很难到达(每个帐户每小时1000个电话)。 API Walkthrough #6显示了如何下载信封文档,您可以将其修改为仅使用其URI下载证书。 REST API指南中还有这个页面,它解释了如何执行此操作:
http://www.docusign.com/p/RESTAPIGuide/RESTAPIGuide.htm#REST API References/Get Envelope Documents and Certificate.htm%3FTocPath%3DREST%20API%20References%7C_____52
答案 2 :(得分:0)
所以我在修改XML文件时遇到了麻烦,相反,由于我们只是将PDF存储在数据库中,所以我决定只在我的循环中修改名称来创建PDF。我修改后的代码如下:
//Loop to print out each PDF to separate file
$oldcertname = "CertificateOfCompletion_" . $xml->EnvelopeStatus->EnvelopeID. ".pdf";
$newcertname = "CertificateOfCompletion.pdf";
foreach($xml->DocumentPDFs->DocumentPDF as $value) {
if($value->Name == $oldcertname) {
$value->Name = $newcertname;
}
$binary = base64_decode($value->PDFBytes);
file_put_contents($xml->EnvelopeStatus->EnvelopeID . "/" . $value->Name, $binary);
}
它有效,所以感谢方向。