ADF V2 Kesalahan karakter string '@' pada posisi tidak diharapkan

Ini adalah posting ganda dengan MSDN, tetapi tidak mendapatkan bantuan apa pun di sana, jadi saya berharap beberapa ahli melihatnya di sini.

Saya memulai dari contoh yang ditemukan di https://docs.microsoft.com/en-us/azure/data-factory/tutorial-incremental-copy-powershell

"name": "SinkDataset",
    "properties": {
        "type": "AzureBlob",
        "typeProperties": {
            "folderPath": "adftutorial/incrementalcopy",
            "fileName": "@CONCAT('Incremental-', pipeline().RunId, '.txt')", 
            "format": {
                "type": "TextFormat"
            }
        },

Kode saya menjadi

"typeProperties": {
            "fileName": "S1073_PBI_DAY_JUSTIF_VW.csv",
            "folderPath": "@CONCAT('bict2233/data-in/day/', @{dataset().TriggerRunTime})",
            "format": {
                "type": "TextFormat",
....

Tapi saya mendapatkan kesalahan ini

Invoke-AzureRmDataFactoryV2Pipeline : HTTP Status Code: BadRequest
Error Code: BadRequest
Error Message: The template validation failed: 'the string character '@' at position '32' is not expected..'.
Request Id: 55664c55-8a20-403b-9fbf-a4c24166b473
Timestamp (Utc):12/14/2017 15:37:59
At C:\ADF\bict2233_A\Powershell\T.ps1:25 char:10
+ $runId = Invoke-AzureRmDataFactoryV2Pipeline -PipelineName "lstgDayJu ...
+          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : CloseError: (:) [Invoke-AzureRmDataFactoryV2Pipeline], ErrorResponseExceptio

Tahu kenapa?

Terima kasih


person Harry Leboeuf    schedule 15.12.2017    source sumber
comment
Apakah Anda mencoba seperti di bawah ini dan memeriksa apakah ini berhasil - "folderPath": "@CONCAT('bict2233/data-in/day/', dataset().TriggerRunTime)"   -  person Abhishek    schedule 19.12.2017


Jawaban (2)


Saya memang menemukan masalahnya.

"folderPath": "@concat('bict2233/data-in/day/', formatDateTime(dataset().TriggerRunTime,'yyyyMMddHH'))"

Harus digunakan seperti

"folderPath": {
"value": "@concat('bict2233/data-in/day/', formatDateTime(dataset().TriggerRunTime,'yyyyMMddHH'))",
"type": "Expression"
}
person Harry Leboeuf    schedule 20.12.2017
comment
Terima kasih, sangat penting untuk dicatat bahwa dalam fungsi tanggal formatDateTime Anda tidak dapat menggunakan @, misalnya @dataset().TriggerRunTime.... ini adalah masalah saya - person dim_user; 17.08.2018

Saya sama sekali bukan ahlinya, tapi saya rasa saya bisa sedikit membantu Anda.

Melihat dokumentasi https://docs.microsoft.com/en-us/azure/data-factory/control-flow-expression-lingual-functions#string-functions Saya menemukan bahwa fungsi concat hanya berlaku untuk string, dan Anda sedang mencoba menggabungkan string 'bict2233/data-in/day/' dengan nilai datetime di @{dataset().TriggerRunTime}.

Mungkin Anda bisa mencoba mengonversi nilainya menjadi string agar aman. Anda dapat melakukannya menggunakan fungsi konversi, tampilannya akan seperti ini:

            "folderPath": "@CONCAT('bict2233/data-in/day/', @string(@{dataset().TriggerRunTime}))"

Saya harap ini membantu Anda! :)

person Martin Esteban Zurita    schedule 19.12.2017