0

まず第一に、私は PowerShell にかなり慣れていません (昨年以内)。今では多くのことを理解していますが、今では API 呼び出しは初めてです。

値を必要としない Web 呼び出しで API 呼び出しを行う方法を理解しました。または、値の配列を必要としないもの。例: $BSSPrincipalManagementWSP.ReadAccount("1_V4-0119341")

私が望むすべてを返します。しかし、$BSSPrincipalManagementWSP.UpdateAccountValues の Web 呼び出しのような手の込んだものに入る場合、最初の変数はアカウントの外部 ID ですが、必要な 2 番目の変数は配列内の accountValues です。

私はそれを達成するためにこのようなことを試みました:

function Update-AccountValues

(

    [string]$accountExternalId,

    [array]$accountValues = @(Import-Csv -Path $ImportPath)

)

{

    $accountValues

    $BSSPrincipalManagementWSP.UpdateAccountValues($accountExternalId, $accountValues)

}



Update-AccountValues "1_V4-0119341"

しかし、次のエラーが表示されます。

Cannot convert argument "accountValues", with value: "System.Object[]", for     "UpdateAccountValues" to type "BSSPrincipalManagementNS.AccountValue[]": "Cannot convert value 

"@{Key=ScreenSaverTimeoutMinutes; Value=60}" to type "BSSPrincipalManagementNS.AccountValue". Error: "Cannot convert the "@{Key=ScreenSaverTimeoutMinutes; Value=60}" value of type 

"System.Management.Automation.PSCustomObject" to type "BSSPrincipalManagementNS.AccountValue".""

At C:\Users\Matt Bergeron\AppData\Local\Temp\ff88f967-9d7c-4f6f-a424-212298a69655.ps1:61 char:2

+     $BSSPrincipalManagementWSP.UpdateAccountValues($accountExternalId, $accountValu ...

+    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+ CategoryInfo          : NotSpecified: (:) [], MethodException

+ FullyQualifiedErrorId : MethodArgumentConversionInvalidCastArgument

要求どおりに「accountValueオブジェクトの配列」を渡していると思いました。

CSV ファイルには 2 つの列があり、1 つはキーとしてリストされ、もう 1 つは値としてリストされています。これらは、OSS/BSS CHM ファイルとまったく同じ名前が付けられています。

他の誰かが私がどこで間違ったのか教えてもらえますか? どんな助けでも大歓迎です。

4

1 に答える 1

0

API は、値が特定のタイプであることを期待していますBSSPrincipalManagementNS.AccountValue[]BSSPrincipalManagementNS.AccountValueのインスタンスを作成して配列に入れることができる別の API 呼び出しを見つける必要があります。次に、その配列を使用して元の API を呼び出します。

于 2013-10-01T05:27:52.960 に答える