2016-08-25 24 views
1

Ampscriptを使用するExactTargetタスクが割り当てられています。ここで行くことを学ぶことを試みている。以下のコードを参照してください:Ampscript BuildRowsetFromString()が単一項目で失敗する

%%[ 
    Var @testString, @testOutput 
    Set @testString = Qwerty 
    Set @testOutput = BuildRowsetFromString(@testString,"~") 
]%% 

TestOutput:%%= v(@testOutput) =%% 

testString~が含まれていますが、文字列には~文字がない場合、出力に含まが空白の場合、コードは動作します。これは設計上正しいですか? ~文字の有無を確認する条件を追加する必要がありますか?

+0

あなたは[salesforce.stackexchange.com](HTTPでの上にSFMCの質問に多くの目を取得します://salesforce.stackexchange。 com)、具体的には[marketing-cloud](http://salesforce.stackexchange.com/questions/tagged/marketing-cloud)および[ampscript](http://salesforce.stackexchange.com/questions/tagged/ampscript )タグ。 –

答えて

2

これは予想される動作です。 BuildRowsetFromString()関数だけでは表示されても値が返されません。値を引き出すには、Row()Field()を使用する必要があります。あなたの例を使用して

%%[ 
    Var @testString, @testOutput 

    Set @testString = "Qwerty" 
    Set @testOutput = BuildRowsetFromString(@testString,"~") 

]%% 

RowCount: %%=RowCount(@testOutput)=%% 
TestOutput: %%=v(@testOutput)=%% 

行カウント()関数は、本質的に、それは少なくとも一つの「行」はそこにあります知っていると言って、1の値を返します。その1つの値を表示するには、あなたがフィールド()行()とその値をラップする必要があります:あなたは、文字列に他の値を表示したい場合は

TestOutput: %%=Field(Row(@testOutput,1),1)=%% 

、「あなたが渡したと言いますQwerty〜Second〜Third "の場合は、Row()関数の数値を変更するか、ループを実行する必要があります。

参照

Using Loops

BuildRowsetFromString() Function

+0

これは最も役に立ちました。ありがとうございました。 – PixelPaul

関連する問題