本記事ではSAP Ariba Procurement ドライバーで発注書 (Purchase Order) や請求書 (Invoice) などのドキュメントに添付されたファイルをダウンロードする方法を説明します。
SAP Ariba Procurement ドライバーでの添付ファイルのダウンロードはDownloadProcurementDocumentAttachment ストアドプロシージャを使います。この機能は2025年3月のドライバーアップデートで追加されました。このストアドプロシージャでは添付ファイルを特定するId をパラメータとして指定します。以下からは添付ファイルのId を取得する方法と、それを使ってストアドプロシージャを実行し添付ファイルをダウンロードする方法を説明します。
添付ファイルのId を取得する方法
添付ファイルを特定するId は以下の2種類があります。
・添付ファイルId (Attachment Id):特定のドキュメント内で添付ファイルを一意に識別するId
・添付ファイルユニークId (Unique Attachment Id):システム全体で添付ファイルを一意に識別するId
これらのId はドライバーでドキュメントを取得した結果から抽出できます。例えば発注書の添付ファイル情報はDirectOrder_SAP_createdRange ビューのAttachments カラムから取得することができます。Attachments カラムには以下のようにJSON 形式で添付ファイル情報が格納されています。
[
{
"Extension": "txt",
"ContentType": "text/plain",
"uniqueAttachmentId": "UFNMSUFWYHpFekx6STROekV5TnpVPQ==",
"Filename": "test1.txt",
"ContentLength": 33,
"id": "bnMyMDI4NzEyNzU="
},
{
"Extension": "txt",
"ContentType": "text/plain",
"uniqueAttachmentId": "UFNMSUFWYHpFekx6STROekV5TnpZPQ==",
"Filename": "test2.txt",
"ContentLength": 33,
"id": "bnMyMDI4NzEyNzY="
},
{
"Extension": "txt",
"ContentType": "text/plain",
"uniqueAttachmentId": "UFNMSUFWYHpFekx6STROekV5TnpnPQ==",
"Filename": "test3.txt",
"ContentLength": 33,
"id": "bnMyMDI4NzEyNzg="
},
]
JSON 形式だと使いにくい場合、CreateChildElementSchema ストアドプロシージャを使ってAttachments のデータをテーブル形式で取得することができます。例えば以下のクエリは発注書の添付ファイル情報を取得するDirectOrder_Attachments ビューを作成します。
exec CreateChildElementSchema @ViewTemplateName = 'DirectOrder_SAP_createdRange', @ChildElement = 'Attachments', @TableName = 'DirectOrder_Attachments', @FileName = 'DirectOrder_Attachments.rsd';
上のクエリで作成したDirectOrder_Attachments ビューを取得すると添付ファイルの情報がテーブル形式で取得できます。
select DirectOrder_UniqueName, FileName, id, uniqueAttachmentId from DirectOrder_Attachments WHERE createdDateFrom = '2024-02-19' and createdDateTo = '2024-02-20';
クエリの実行結果
| DirectOrder_UniqueName |
FileName |
id |
uniqueAttachmentId |
| PO16 |
test1.txt |
bnMyMDI4NzEyNzU= |
UF5MSUFWHpFekx6STROekV5TnpVPQ== |
| PO16 |
test2.txt |
bnMyMDI4NzEyNzY= |
UF5MSUFWHpFekx6STROekV5TnpZPQ== |
| PO16 |
test3.txt |
bnMyMDI4NzEyNzg= |
F5MSUFWHpFekx6STROekV5TnpnPQ== |
添付ファイルユニークId を使ってダウンロードする
添付ファイルユニークId を使って添付ファイルをダウンロードする方法を示します。この方法ではDownloadProcurementDocumentAttachmentストアドプロシージャのパラメータAttachmentId に添付ファイルユニークId を指定します。パラメータLocalPath にはダウンロードするファイルパスを設定します。ここにはフォルダパスではなくファイル名まで指定します。以下にストアドプロシージャの形式を示します。
exec DownloadProcurementDocumentAttachment @AttachmentId = 「添付ファイルユニークId」, @LocalPath = 「ダウンロードするファイルパス(ファイル名を含む)」
以下にストアドプロシージャの実行例を示します。
exec DownloadProcurementDocumentAttachment @AttachmentId = 'UF5MSUFWHpFekx6STROekV5TnpVPQ==', @LocalPath = 'C:\\Work\\Download\\test1.txt';
添付ファイルId を使ってダウンロードする
添付ファイルユニークId が付与されていないファイルをダウンロードする場合は添付ファイルId を使います。この方法ではパラメータAttachmentId に添付ファイルId を指定し、さらにドキュメントのタイプを指定するパラメータQueryType 、ドキュメントの識別子を指定するパラメータApprovableId を指定します。以下にストアドプロシージャの形式を示します。
exec DownloadProcurementDocumentAttachment @QueryType = 「ドキュメントのタイプ」, @ApprovableId=「ドキュメントの識別子」, @AttachmentId = 「添付ファイルId」, @LocalPath = 「ダウンロードするファイルパス(ファイル名を含む)」;
QueryType パラメータに指定できる値は以下の通りです。
- invoices
- requisitions
- receipts
- directOrders
- copyOrders
- ERPOrders
- invoiceReconciliations
以下にストアドプロシージャの実行例を示します。
exec DownloadProcurementDocumentAttachment @QueryType = 'directOrders', ApprovableId='PO16', @AttachmentId = 'bnMyMDI4NzEyNzY=', @LocalPath = 'C:\\Work\\Download\\test1.csv';
おわりに
本記事ではSAP Ariba Procurement ドライバーで発注書や請求書などのドキュメントに添付されたファイルをダウンロードする方法を説明しました。SAP Ariba Procurement ドライバーは30日間無料で試用できます。SAP Ariba との連携をご検討の方はぜひお試しください。