お世話になっております。
表記、SOAP APIのAddressAddCards APIを使用してアドレス帳の登録を行おうとするのですが、カスタム項目(<custom>)に対して値を設定することができません。
エラーも何も発生せず、カスタム項目への値の代入がされずに終了してしまいます。
AddressGetSharedCardsById APIでは取得は可能ですが、設定ができないのは仕様でしょうか?
具体的には以下のようなパラメータを渡しています。
<parameters>
<add_card>
<card book_id=“1” id=“dummy” version=“dummy”>
<creator user_id=“1” name=“dummy” date=“dummy”></creator>
<subject>アドレス帳タイトル</subject>
<personal_name><part>姓</part><part>名</part></personal_name>
<personal_reading><part>せい</part><part>めい</part></personal_reading>
<custom>
<string field_code=“shokuin_code”>12345678</string>
</custom>
</card>
</add_card>
</parameters>
以上、ご教示のほどよろしくお願いいたします。
Nakanishi Kenichiro さん
こんにちは!
AddressAddCards API を利用してカスタマイズ項目も設定することが可能でした。
“field_code” に指定している値とGaroon の共有アドレス帳の “項目コード” に設定されている値が
完全に一致しているかどうかや、今回指定しているカスタマイズ項目が “string” になっているので、
カスタマイズ項目が「文字列(1行)」の項目として追加されているかなどを
確認してみてはいかがでしょうか。
文系男さん
早速のご回答ありがとうございます。
確認してみましたが、共有アドレス帳の設定は添付の通りでして、特に問題はないようです。
(逆にXMLで"field_code"に指定している値を変えるとAPIはエラーを返します)
何かXMLの書き方にコツがあるのでしょうか?
ちなみに”<string>”(文字列(1行))ではなく、“<text>”(文字列(複数行))にしてみましたところ、AddressAddCards APIで設定ができました。
そうしますと、<string>~</string>の指定の仕方は、例えば以下のようでは不味いのでしょうか?
<custom>
<string field_code=“shokuin_code”>12345678</string>
</custom>
Nakanishi Kenichiro さん
パッと見た感じでは誤りはないように見受けられますね。。。
自分は以下のような記述で問題なくカスタマイズ項目に追加した
「文字列(1行)」の項目に値を設定可能でした。
\<parameters\>
\<add\_card\>
\<card book\_id="1" id="dummy" version="dummy"\>
\<creator user\_id="1" name="dummy" date="dummy"\>\</creator\>
\<subject\>テスト\</subject\>
\<personal\_name\>\<part\>テスト\</part\>\</personal\_name\>
\<custom\>
\<string field\_code="shokuin\_code"\>12345678\</string\>
\</custom\>
\</card\>
\</add\_card\>
\</parameters\>
ちなみに、Garoon のバージョンは 4.10.0 です。
当方、バージョンは4.10.1ですが、なぜか項目コードのアンダースコアを削除すると設定することができました。
もしかすると、サニタイジングやURLエンコードの世界の関係かもしれません。
特に項目コードにアンダースコアが入っている必要はないので、今回は項目コードを変更することで対応することとします。
どうもありがとうございました。
Nakanishi Kenichiro さん
先ほど、コチラでも Garoon 4.10.1 に上げてみて、
動作確認いたしましたが、先述の記述内容にて、問題なくカスタマイズ項目の
値の設定が可能でした。
何が原因なのか検討がつかないですね。。。
お役に立てず申し訳ございません。。。