初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2021-10-13 21:18:37

itoshi
Guest

Filemakerとkintoneの連携 URLから挿入

Filemakerからkintoneに登録を考えています。
Filemakerのポータルからkintoneのサブテーブルの登録ができません。
他の部分は登録できるのですが、ポータルからサブテーブルの部分がうまくいきません。
URLから挿入から以下で明細(ポータルからサブテーブル)の登録ができません。
kintoneのサブテーブルに空に1行は追加できるのですが、データが登録できません。
どのようにしたら、登録できるでしょうか?
よろしくお願いします。

["record" ; JSONSetElement("";
["作業日"; JSONSetElement ( ""; "value"; GetAsText ( 作業報告書::作業日 ); JSONString ); JSONObject];
["得意先コード"; JSONSetElement ( ""; "value"; 作業報告書::得意先コード; JSONString ); JSONObject];
["得意先名"; JSONSetElement ( ""; "value"; 作業報告書::得意先名; JSONString ); JSONObject];
["作業報告書NO"; JSONSetElement ( ""; "value"; 作業報告書::作業報告書NO; JSONString ); JSONObject];
["部門"; JSONSetElement ( ""; "value"; 作業報告書::部門;  JSONString ); JSONObject];
["担当者コード"; JSONSetElement ( ""; "value"; 作業報告書::担当者コード; JSONString ); JSONObject];
["担当者"; JSONSetElement ( ""; "value"; 作業報告書::担当者; JSONString ); JSONObject];
["機械名"; JSONSetElement ( ""; "value"; 作業報告書::機械名; JSONString ); JSONObject];
["機械番号"; JSONSetElement ( ""; "value"; 作業報告書::機械番号; JSONString ); JSONObject];
["作業分類"; JSONSetElement ( ""; "value"; 作業報告書::作業分類; JSONString ); JSONObject];
["故障状況"; JSONSetElement ( ""; "value"; 作業報告書::故障状況; JSONString ); JSONObject];
["調整内容"; JSONSetElement ( ""; "value"; 作業報告書::調整内容; JSONString ); JSONObject];
["備考"; JSONSetElement ( ""; "value"; 作業報告書::備考; JSONString ); JSONObject];
["完了日"; JSONSetElement ( ""; "value"; GetAsText ( 作業報告書::完了日 ); JSONString ); JSONObject];
["作業開始"; JSONSetElement ( ""; "value"; GetAsText ( 作業報告書::作業開始 ); JSONString ); JSONObject];
["作業終了"; JSONSetElement ( ""; "value"; GetAsText ( 作業報告書::作業終了 ); JSONString ); JSONObject];
["作業時間"; JSONSetElement ( ""; "value"; GetAsText ( 作業報告書::所要時間 ); JSONString ); JSONObject];
["写真1"; JSONSetElement ( ""; "value"; "[" & JSONSetElement ( "" ; "fileKey" ; JSONGetElement ( $response; "fileKey") ; JSONString )& "]"; JSONArray ); JSONObject];
["写真3"; JSONSetElement ( ""; "value"; "[" & JSONSetElement ( "" ; "fileKey" ; JSONGetElement ( $response3; "fileKey") ; JSONString )& "]"; JSONArray ); JSONObject];
["添付ファイル"; JSONSetElement ( ""; "value"; "[" & JSONSetElement ( "" ; "fileKey" ; JSONGetElement ( $response5; "fileKey") ; JSONString )& "]"; JSONArray ); JSONObject];
["明細"; JSONSetElement ( ""; "value"; "[" & JSONSetElement ( "" ; "明細.商品コード" ; 作業報告書_詳細::商品コード; JSONString )& "]"; JSONArray ); JSONObject]
); JSONObject]
))

#2 2021-10-14 20:41:45

himadanee
Guest

Re: Filemakerとkintoneの連携 URLから挿入

kintoneの方のAPIがわかりませんが、サブテーブルのデータは1行ずつ入れなくていいんですか?
1つのJSONでできるとしても、それを構成するのにループ関数Whileが必要なのでは?

#3 2021-10-14 22:29:15

itoshi
Guest

Re: Filemakerとkintoneの連携 URLから挿入

himadanee様

ご回答ありがとうございます。

ポータルの変数を作成しましたが、サブテーブルに1行ずつ入れる方法がわかりません。
ポータルの変数の内容は以下になります。


While (
[
//変数初期値
i=0; //カウンター
#伝票明細=JSONSetElement ( "{}";"";"";3 ); //空のオブジェクトを用意しておく 3=JSONObject
#明細=""
];

//終了条件
i   <   Count ( 作業報告書_詳細::作業報告書データID ) ;//ポータルの行数

//計算式
[
i= i + 1;

#明細 =
JSONSetElement (#明細 ;
["商品コード" ; GetNthRecord ( 作業報告書_詳細::商品コード;i );1];//1=JSONString
["商品名" ; GetNthRecord ( 作業報告書_詳細::部品名;i );1];//1=JSONString
["数量" ; GetNthRecord ( 作業報告書_詳細::数量;i );1];
["単価" ; GetNthRecord ( 作業報告書_詳細::単価;i );1];
["原価" ; GetNthRecord ( 作業報告書_詳細::原価単価;i );1]
);
#伝票明細 = JSONSetElement ( #伝票明細;"明細["& i-1 & "]";#明細;3 ) //3=JSONObject
]

//リターンする結果
; #伝票明細
)

#4 2021-10-17 09:16:15

himadanee
Guest

Re: Filemakerとkintoneの連携 URLから挿入

最初の投稿を見ると、明細は配列で渡すようになってるみたいですが、明細の内容は
JSONSetElement ( "" ; "明細.商品コード" ; 作業報告書_詳細::商品コード; JSONString )
だと
{"明細":{"商品コード":"作業報告書_詳細::商品コード"}}
になってしまう(明細タグが二重)ので、多分変ですよね。それで空データになったんだと思います。

他のフィールドの値と同様、逐次変更操作でもできると思いますが、「サブテーブル」というのがFMのように単にリレーションした別のテーブルというんでなくあるテーブルの一部として定義されたものなら、「1行ずつ入れる」のは無駄な手間をかけるだけかもしれません。kintoneのドキュメントが見つからないので正しい方法についてはコメントできません。

#5 2021-10-17 17:10:58

itoshi
Guest

Re: Filemakerとkintoneの連携 URLから挿入

himadanee様

ご回答ありがとうございます。

kintone api のリクエストボディの構造は以下になると思います。

{
    "app": "(アプリのID)",
    "record": {
        "(フィールドコード)": {
            "value": "(フィールド値)"
        },
        "(テーブルのフィールドコード)": {
            "value": [
                {
                    "value": {
                        "(フィールドコード)": {
                            "value": "(フィールド値)"
                        }
                    }               
                }
            ]
        }
    }
}

フィールドコードはフィルドの名前になります。
テーブルのフィールドコードは、サブテーブルの名前になります。
よろしくお願い致します。

#6 2021-10-18 08:06:52

itoshi
Guest

Re: Filemakerとkintoneの連携 URLから挿入

間違って、解決としてしまいました。

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.008 seconds, 9 queries executed - Memory usage: 521.38 KiB (Peak: 525.91 KiB) ]