簡體   English   中英

Outlook 365 文件附件選項自動應用 CSV 列標題

[英]Outlook 365 file attachment option auto-applies CSV column headers

我需要使用 Mule 開發一個集成,它將創建一個沒有標題的 *.csv 文件,email 文件內容作為 email 附件使用 Outlook 365。

使用 DataWeave 2.0,我定義output application/csv header = false來創建沒有標題的所需 CSV 內容。 DataWeave 腳本的 Output 是正確的,我檢查了應用程序日志並寫入本地文件系統。

In the next step, I am passing this output payload to Outlook 365 using below code (MuleSoft Outlook 365 connector internally uses Outlook mail REST API - https://learn.microsoft.com/en-us/graph/api/resources/mail -api-overview?view=graph-rest-1.0 ):

%dw 2.0
import * from dw::core::Binaries
output application/json
---
{
    "message": {
        "subject": "Summary-" ++ now() as String {
            "format": "yyyyMMdd"
        },
        "body": {
            "contentType": "Text",
            "content": "Please find attached summary"
        },
        "toRecipients": [{
            "emailAddress": {
                "address": p('outlook.toRecipients')
            }
        }],
        "attachments": [{
            "@odata.type": "#microsoft.graph.fileAttachment",
            "name": "service-data.csv",
            "contentType": "application/csv",
            "contentBytes": toBase64(write(payload, "application/csv"))
        }]
    },
    "saveToSentItems": "true"
}

此 email 的接收者找到在附件中創建的列標題,示例:

column_0,column_1,column_2,column_3,column_4,column_5,column_6,column_7,column_8,column_9,column_10,column_11,column_12,column_13,column_14,column_15,column_16,column_17,column_18
 ,SDEN1001107GR,Dense 7.3N 100mm,Days,0,,Blank,,,,,,,,,,,,

我對此進行了調試,看起來 Outlook 如果未定義,365 連接器會自動添加列 header 'column_X'。 但是,要求不要在文件附件中包含標頭。

有人可以幫忙如何忽略 email 附件中的列標題嗎?

示例請求負載:

[
    {
        "Code": "SDEN1001107GR",
        "UnitUsagesUsage": "Days",
        "Group": "Blank",
        "Category": "A",
        "Description": "Dense 100mm",
        "Rate": "0"
    }
]

問題似乎是 DataWeave - 而不是連接器 - 正在接收header=false屬性作為讀取器屬性而不是寫入器屬性。 例如在read() function 或源或操作的outputMimeType屬性中。 閱讀器屬性適用於腳本的輸入。

您需要使用 as a writer 屬性,而不是將屬性應用於 output。

write() function 中,您添加編寫器屬性作為附加參數:

write(payload, "application/csv", {header: false})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM