新規投稿
フォローする

jsでのサブテーブルへのPOST方法

初めて投稿させていただきます。
下記ご教授いただきたく。プログラミング初心者です。

支払管理アプリの保存時に
商品管理アプリの条件に合うレコードのサブテーブルの値を取得し、
その一部の項目を伝票管理アプリのサブテーブルに登録させたいのですがうまくいきません。

下記コードでデバッグ実行したところ
var post_paramsの段階で値は持っていて伝票番号アプリへ新規レコード登録の処理はしているが
値が入らないです。(空レコード作成で登録完了のアラートは発生しています)


「支払管理アプリ内js」

(function () {

"use strict";

//伝票番号アプリ保存時
var events = ['app.record.create.submit.success',
'app.record.edit.submit.success'];

kintone.events.on(events, function(event) {
var record = event.record;
var clientRecordId = event.record.FG顧客キーコード.value;
var orderPath = event.record.FG受注経路.value;
var relatedAppId = kintone.app.getRelatedRecordsTargetAppId('FG注文一覧');
var query = 'FGキーコード="' + clientRecordId +
'" and FG受注経路 in("' + orderPath +
'") and FG受注No= "" order by FG注文番号 asc';

var outputFields = ['FG商品一覧テーブル'];
var appUrl = kintone.api.url('/k/v1/records', true);

var params = {
'app': relatedAppId,
'query':query,
'fields': outputFields
};


//注文管理アプリからの情報取得
kintone.api(appUrl, 'GET', params).then(function(resp) {

//取得したレコード分ループ
resp.records.forEach(function(record, i){
var sub_rec = resp.records[i].FG商品一覧テーブル.value

//サブテーブル分ループ
for (var j = 0; j < sub_rec.length; j++) {

if (sub_rec[j].value.FG商品_送料フラグ.value == '商品') {


var post_params = {
app: 73,
records: [{
record : {
"FG商品コード": { "value":sub_rec[j].value.FG商品コード.value },
"FG商品名": { "value": sub_rec[j].value.FG商品名.value },
"FG単価": { "value": sub_rec[j].value.FG単価.value },
"FG数量": { "value": sub_rec[j].value.FG数量.value },
"FG金額": { "value": sub_rec[j].value.FG小計.value },
"FG配送区分": { "value": sub_rec[j].value.FG配送区分.value },
"FG税区分": { "value": sub_rec[j].value.FG税区分.value}

}
}]
}

kintone.api(appUrl,'POST',post_params,function(resp){
alert('登録完了');
}, function(resp) {
var errmsg = 'レコード更新に失敗しました';
if (resp.message !== undefined) {
errmsg += '\n' + resp.message;
}
alert(errmsg);
})

}
}
});
}, function(resp) {
event.error = 'レコードの取得に失敗しました';
kintone.app.record.set(record);
return event;

});

});

})();


つたない説明とコードですがどうかよろしくおねがいいたします。
追加で必要な情報がありましたら教えていただければと思います。

0

10件のコメント

Avatar
村濱一樹

> 新規レコード登録の処理はしているが
値が入らないです。(空レコード作成で登録完了のアラートは発生しています)

ifやforループの箇所が怪しそうです。一旦、ループせずに確実にデータが入っている行のサブテーブルの行を指定して送ったらどうなりますか?

var post_params = {
app: 73,
records: [{
record : {
"FG商品コード": { "value":sub_rec[0].value.FG商品コード.value },
"FG商品名": { "value": sub_rec[0].value.FG商品名.value },
"FG単価": { "value": sub_rec[0].value.FG単価.value },
"FG数量": { "value": sub_rec[0].value.FG数量.value },
"FG金額": { "value": sub_rec[0].value.FG小計.value },
"FG配送区分": { "value": sub_rec[0].value.FG配送区分.value },
"FG税区分": { "value": sub_rec[0].value.FG税区分.value}
}

kintone.api(appUrl,'POST',post_params....
0
Avatar
大西 佑汰

togami様

 

コード拝見いたしました。

結論から申し上げますと、POSTメソッドで送信するデータの形式が合っていません。

(ドキュメント:https://developer.cybozu.io/hc/ja/articles/202166160#step2

 

var post_params = {
    app: 73,
    records: [{
        record : {
            "FG商品コード": { "value":sub_rec[j].value.FG商品コード.value },
            "FG商品名": { "value": sub_rec[j].value.FG商品名.value },
            "FG単価": { "value": sub_rec[j].value.FG単価.value },
            "FG数量": { "value": sub_rec[j].value.FG数量.value },
            "FG金額": { "value": sub_rec[j].value.FG小計.value },
            "FG配送区分": { "value": sub_rec[j].value.FG配送区分.value },
            "FG税区分": { "value": sub_rec[j].value.FG税区分.value}

       }
    }]
}

 

とのことですが、records直下のrecordが不要で、

 

var post_params = {
    app: 73,
    records: [{
        "FG商品コード": { "value":sub_rec[j].value.FG商品コード.value },
        "FG商品名": { "value": sub_rec[j].value.FG商品名.value },
        "FG単価": { "value": sub_rec[j].value.FG単価.value },
        "FG数量": { "value": sub_rec[j].value.FG数量.value },
        "FG金額": { "value": sub_rec[j].value.FG小計.value },
        "FG配送区分": { "value": sub_rec[j].value.FG配送区分.value },
        "FG税区分": { "value": sub_rec[j].value.FG税区分.value}
    }]
}

 

が正しいです。

 

ちなみに、本筋とは関係ありませんが、forEachのすぐ下でfor文を使ったり、変数の命名規則が揃っていない、インデントされていない、var record = event.record; しているのに使っていない、recordという変数名をシャドーしている、forEachで定義した要素を使わず再定義しているなど、要所で気になる点がありました。

 

また、せっかくPromiseをthenでチェーンしているのですから、取得したレコードをループし、さらにサブテーブルをループしてその都度通信を行うより、forEachやfilter関数を使ってPromiseを配列に格納して、Promise.allで一気に処理した方が効率がよくなるかもしれません。

 

今後のtogami様のエンジニアリングにおいて、何かのご参考になれば幸いです。

 

大西

1
Avatar
村濱一樹

大西さん

本当ですね、気づかなかったです、ご指摘ありがとうございます。

togamiさん、僕のコメントは無視してください!

0
Avatar
大西 佑汰

村濱様

いえいえ。タイミングのせいとはいえ、被せてしまったようですみません。

 

togami様

先ほどPromise.allについて言及しましたが、Promise.allはIEに対応してない上に、今回の処理では不要でした。

シンプルに、ループしながら配列を更新すれば一括更新が可能です。

 

例えば、同じ処理を下記のように書くことができます。

 

(function() {

    "use strict";

    // 伝票番号アプリ保存時
    kintone.events.on(['app.record.create.submit.success', 'app.record.edit.submit.success'], function(event) {
        var record = event.record;
        var clientRecordId = record.FG顧客キーコード.value;
        var orderPath = record.FG受注経路.value;
        var relatedAppId = kintone.app.getRelatedRecordsTargetAppId('FG注文一覧');
        var query = 'FGキーコード = "' + clientRecordId + '" and FG受注経路 in ("' + orderPath + '") and FG受注No = "" order by FG注文番号 asc';
        var outputFields = ['FG商品一覧テーブル'];

        var appUrl = kintone.api.url('/k/v1/records', true);

        var params = {
            'app': relatedAppId,
            'query':query,
            'fields': outputFields
        };


        // 注文管理アプリからの情報取得
        kintone.api(appUrl, 'GET', params).then(function(resp) {

            var postRecords = [];

            // 取得したレコード分ループ
            resp.records.forEach(function(eachRecord) {
                var subTable = eachRecord.FG商品一覧テーブル.value;

                // サブテーブル分ループ
                subTable.forEach(function(eachRow) {
                    if (eachRow.value.FG商品_送料フラグ.value === '商品') {
                        postRecords.push({

                            "FG商品コード": { "value":eachRow.value.FG商品コード.value },
                            "FG商品名": { "value": eachRow.value.FG商品名.value },
                            "FG単価": { "value": eachRow.value.FG単価.value },
                            "FG数量": { "value": eachRow.value.FG数量.value },
                            "FG金額": { "value": eachRow.value.FG小計.value },
                            "FG配送区分": { "value": eachRow.value.FG配送区分.value },
                            "FG税区分": { "value": eachRow.value.FG税区分.value}

                        });

                    }

                });

            });

            var postParams = {
                app: 73,
                records: postRecords

            };

            kintone.api(appUrl, 'POST', postParams, function(){
                alert('登録完了');
            }, function(error) {
                var errmsg = 'レコード更新に失敗しました';
                if (error.message !== undefined) {
                     errmsg += '\n' + error.message;
                }
                alert(errmsg);
            });

        }).catch(function(error) {

            var errmsg = 'レコードの取得に失敗しました';
                if (error.message !== undefined) {
                     errmsg += '\n' + error.message;
                }
                alert(errmsg);

        });

        return event;

    });

})();

 

ご参考になれば幸いです。

1
Avatar
togami

村濱様、大西様
本件ご回答くださりありがとうございます。
kintoneのプラグインよりそのままコピーしたためインデントがなくなってしまっておりました

見にくいコードの中修正くださりありがとうございました。

大西様にいただいたコードでも動かずいろいろ調べていたところ、
POSTパラメータの中での指定が""で括られていなかったため登録できていなかったようです。

POSTパラメータの指定部分を下記変更することで無事動作いたしました。

// サブテーブル分ループ
subTable.forEach(function(eachRow) {
if (eachRow.value.FG商品_送料フラグ.value === '商品') {

var Pcode = eachRow.value.FG商品コード.value;
var Qcode = eachRow.value.FG数量.value;
postRecords.push({

"FG商品コード": { "value": Pcode },
"FG数量": { "value": Qcode }

});

}

});


また、追加でご教授いただきたいのですが
現状は注文管理から取得したレコードのサブテーブル1件ずつを伝票番号のサブテーブルに登録していますが
取得したサブテーブルを画像の条件ごとに複数サブテーブルへ登録させたいです。

上記表は1レコード分のサブテーブルになります。

 


どうかよろしくお願い致します。

0
Avatar
大西 佑汰

togami様

 

上記コード、一度IDEで構文チェックしたのですが、どこか間違っていたでしょうか。失礼いたしました。

いずれにせよ狙い通りの動作になりましたようで何よりでございます。

 

さて、サブテーブルを条件毎に分割する方法ですが、やり方はいくつかあります。

対象のサブテーブルから取得した配列のソートはできるものとして、例えば下記のような書き方があります。

 

※サブテーブル振り分けのロジックだけ書いてみたので、省略した部分は適宜補記してみてください。

※reduceでfindする方法はサブテーブルが長くなるごとに処理が遅くなるので、処理中にエンドユーザーが画面遷移してしまうと、

 処理が正常に終わらない可能性があります。そのため、IE対応を無視してfindを使うか、

 return new kintone.Promiseを使って処理を待たせる方がいいかもしれません。

 

(function() {

"use strict";

// 伝票番号アプリ保存時
kintone.events.on(['app.record.create.submit.success', 'app.record.edit.submit.success'], function(event) {
var record = event.record;
var clientRecordId = record.FG顧客キーコード.value;
var orderPath = record.FG受注経路.value;
var relatedAppId = kintone.app.getRelatedRecordsTargetAppId('FG注文一覧');
var query = 'FGキーコード = "' + clientRecordId + '" and FG受注経路 in ("' + orderPath + '") and FG受注No = "" order by FG注文番号 asc';
var outputFields = ['FG商品一覧テーブル'];
var appUrl = kintone.api.url('/k/v1/records', true);
var params = {
'app': relatedAppId,
'query':query,
'fields': outputFields
};
// 注文管理アプリからの情報取得
kintone.api(appUrl, 'GET', params).then(function(resp) {
var postRecords = [];
// 取得したレコード分ループ
resp.records.forEach(function(eachRecord) {
var subTable = eachRecord.FG商品一覧テーブル.value;
var sortedSubTable = subTable.sort({何らかのソート処理}); // サブテーブルを何らかの方法でソートしたもの

/* ソート済みの配列を上から順に見ていき、postRecordsの中に、キーが一致するものがあるかをチェックします。
なければrecordオブジェクトをpostRecordsにpush、あればそのrecordオブジェクト内のサブテーブルフィールドに行を追加します。
*/
sortedSubTable.forEach(function(eachRow) {
// findがIE対応ではないため、reduceと三項演算子でfindを行う。
var targetIndex = postRecords.reduce(function (result, eachRecord, index) {
return result === null ?
(
eachRecord.配送区分.value === eachRow.配送区分.value &&
eachRecord.配送元区分.value === eachRow.配送元区分.value &&
eachRecord.税区分.value === eachRow.税区分.value
)
? index : null
: result
}, null);
// postRecordsにキーが一致するものがないか、すでに6行存在する場合
if (targetIndex == null && postRecords[targetIndex].{サブテーブルのフィールドコード}.value.length === 6) {
// 新しいレコードとしてpostRecordsにpushする処理
} else {
/* targetRecord内のサブテーブルに行を追加する処理
reduceが参照渡しかどうかわからなかったため、indexでアクセスし、
postRecords[targetIndex].{サブテーブルのフィールドコード}.value.push();
のようにする想定。
*/
}
});
});
var postParams = {
app: 73,
records: postRecords
};
kintone.api(appUrl, 'POST', postParams, function(){
alert('登録完了');
}, function(error) {
var errmsg = 'レコード更新に失敗しました';
if (error.message !== undefined) {
errmsg += '\n' + error.message;
}
alert(errmsg);
});
}).catch(function(error) {
var errmsg = 'レコードの取得に失敗しました';
if (error.message !== undefined) {
errmsg += '\n' + error.message;
}
alert(errmsg);
});
return event;
});
})();
0
Avatar
togami

大西様

上記記載のようにいただいたコードの

POSTパラメータの指定部分のみ変更して

他は問題なく動いております。

 

また追加要件にもご回答くださり大変ありがたく思います。

こちら参考に作成してみます。

不明点出ましたら再度こちらで質問させていただければと思っております。

 

 

0
Avatar
togami

 

(function() {

"use strict";

// 伝票番号アプリ保存時
kintone.events.on(['app.record.create.submit.success', 'app.record.edit.submit.success'], function(event) {
var record = event.record;
var clientRecordId = record.FG顧客キーコード.value;
var orderPath = record.FG受注経路.value;
var relatedAppId = kintone.app.getRelatedRecordsTargetAppId('FG注文一覧');
var query = 'FGキーコード = "' + clientRecordId + '" and FG受注経路 in ("' + orderPath + '") and FG受注No = "" order by FG注文番号 asc';
var outputFields = ['FG商品一覧テーブル'];

var appUrl = kintone.api.url('/k/v1/records', true);

var params = {
'app': relatedAppId,
'query':query,
'fields': outputFields
};


// 注文管理アプリからの情報取得
kintone.api(appUrl, 'GET', params).then(function(resp) {

var postRecords = [];

// 取得したレコード分ループ
resp.records.forEach(function(eachRecord) {
var subTable = eachRecord.FG商品一覧テーブル.value;

// サブテーブル分ループ
subTable.forEach(function(eachRow) {
if (eachRow.value.FG商品_送料フラグ.value === '商品') {

var Pcode = eachRow.value.FG商品コード.value;
var Qcode = eachRow.value.FG数量.value;
postRecords.push({

"FG商品コード": { "value": Pcode },
"FG数量": { "value": Qcode }

});

}

});

});

var postParams = {
app: 73,
records: postRecords

};

kintone.api(appUrl, 'POST', postParams, function(){
alert('登録完了');
}, function(error) {
var errmsg = 'レコード更新に失敗しました';
if (error.message !== undefined) {
errmsg += '\n' + error.message;
}
alert(errmsg);
});

}).catch(function(error) {

var errmsg = 'レコードの取得に失敗しました';
if (error.message !== undefined) {
errmsg += '\n' + error.message;
}
alert(errmsg);

});

return event;

});

})();

こちら現状動いているコードです。

0
Avatar
togami

大西様に頂いたコードで無事上記の動作完成できました。

伝票番号管理アプリへ登録する際に伝票番号の採番処理を追加と

採番した伝票番号を注文管理アプリのサブテーブル「商品伝票番号」に更新させたいのですが

採番処理までは完成し、新たに伝票番号の値をGETしたいのですがGETのクエリのorderNoが直前まで所持しているのに

取得することができません。

ご教授いただけると幸いです。

 

0
Avatar
togami
(function() {

"use strict";
var autoNo;
var orderNo;

var sort = function(table, orderBy, isDesc) {
table.sort(function(a, b) {
var v1 = a.value[orderBy].value;
var v2 = b.value[orderBy].value;
var pos = isDesc ? -1 : 1;
if (v1 > v2) {
return pos;
}
if (v1 < v2) {
return pos * -1;
}
});

return table;
};



// 伝票番号アプリ保存時
kintone.events.on(['app.record.create.submit.success', 'app.record.edit.submit.success'], function(event) {
var record = event.record;
var clientRecordId = record.FG顧客キーコード.value;
var orderPath = record.FG受注経路.value;
var relatedAppId = kintone.app.getRelatedRecordsTargetAppId('FG注文一覧');
var query = 'FGキーコード = "' + clientRecordId + '" and FG受注経路 in ("' + orderPath + '") and FG受注No = "" order by FG注文番号 asc';
var outputFields = ['FG商品一覧テーブル'
,'FG注文番号'
,"FG顧客ランク"
,"FG顧客コード"
,"FG家族コード"
,"FG受注日時"
,"FG注文者姓名"
,"FG注文者セイメイ"
,"FG注文者部署名"
,"FG注文者担当者名"
,"FG注文者担当者カナ"
,"FG注文者電話番号"
,"FG注文者FAX番号"
,"FG注文者郵便番号"
,"FG注文者住所1"
,"FG注文者住所2"
,"FG注文者住所カナ1"
,"FG注文者住所カナ2"
,"FG注文者売掛可否"
,"FG注文者備考"
,"FG配送先コード"
,"FG受注届先No"
,"FG配送先姓名"
,"FG配送先セイメイ"
,"FG配送先部署名"
,"FG配送先担当者名"
,"FG配送先担当者名カナ"
,"FG配送先電話番号"
,"FG配送先FAX番号"
,"FG配送先郵便番号"
,"FG配送先住所1"
,"FG配送先住所2"
,"FG配送先住所カナ1"
,"FG配送先住所カナ2"
,"FG配送先法人個人区分"
,"FG配送指定日"
,"FG配送指定時間"
,"FG配送指定月"
,"FG配送指定旬"
,"FG表書き"
,"FG名入れ_1行目"
,"FG名入れ_2行目"
,"FG名入れ_3行目"
,"FG名入れ_4行目"];

var appUrl = kintone.api.url('/k/v1/records', true);

var params = {
"app": 73,
"query": 'order by FG伝票番号 desc limit 1'
};

kintone.api(appUrl, 'GET', params).then(function(resp) {
autoNo = resp.records[0].FG伝票番号.value;

// 伝票番号が入っている場合はその値を利用する
if (autoNo) {

// 対象レコードがあった場合
if (resp.records.length > 0) {
autoNo = parseInt(autoNo, 10) + 1;
autoNo = '00000' + autoNo;
autoNo = autoNo.substring(autoNo.length - 6);
}

// 対象レコードがなかった場合
} else {
autoNo = '000001';
}
});

params = {
'app': relatedAppId,
'query':query,
'fields': outputFields
};

// 注文管理アプリからの情報取得
kintone.api(appUrl, 'GET', params).then(function(resp) {

var postRecords = [];
var a2 = '';
var a3 = '';
var a4 = '';
var a5 = '';
var a6 = '';
var a7 = '';
var a8 = '';
var a9 = '';
var a10 = '';
var a11 = '';
var a12 = '';
var a13 = '';
var a14 = '';
var a15 = '';
var a16 = '';
var a17 = '';
var a18 = '';
var a19 = '';
var b1= '';
var b2= '';
var b3= '';
var b4= '';
var b5= '';
var b6= '';
var b7= '';
var b8= '';
var b9= '';
var b10 = '';
var b11 = '';
var b12 = '';
var b13 = '';
var b14 = '';
var b15 = '';
var c1 = '';
var c2 = '';
var c3 = '';
var c4 = '';
var c5 = '';
var c6 = '';
var c7 = '';
var c8 = '';
var c9 = '';
orderNo = resp.records[0].FG注文番号.value;

// 取得したレコード分ループ
resp.records.forEach(function(eachRecord) {
var subTable = eachRecord.FG商品一覧テーブル.value;
a2 = eachRecord.FG顧客ランク.value;
a3 = eachRecord.FG顧客コード.value;
a4 = eachRecord.FG家族コード.value;
a5 = eachRecord.FG受注日時.value;
a6 = eachRecord.FG注文者姓名.value;
/*a7 = eachRecord.FG注文者セイメイ.value;
a8 = eachRecord.FG注文者部署名.value;
a9 = eachRecord.FG注文者担当者名.value;
a10 = eachRecord.FG注文者担当者名カナ.value;
a11 = eachRecord.FG注文者電話番号.value;
a12 = eachRecord.FG注文者FAX番号.value;
a13 = eachRecord.FG注文者郵便番号.value;
a14 = eachRecord.FG注文者住所1.value;
a15 = eachRecord.FG注文者住所2.value;
a16 = eachRecord.FG注文者住所カナ.value;
a17 = eachRecord.FG注文者住所カナ.value;
a18 = eachRecord.FG注文者売掛可.value;
a19 = eachRecord.FG注文者備考.value;
b1 = eachRecord.FG配送先コード.value;*/
b2 = eachRecord.FG受注届先No.value;
/*b3 = eachRecord.FG配送先姓名.value;
b4 = eachRecord.FG配送先セイメイ.value;
b5 = eachRecord.FG配送先部署名.value;
b6 = eachRecord.FG配送先担当者名.value;
b7 = eachRecord.FG配送先担当者名カナ.value;
b8 = eachRecord.FG配送先電話番.value;
b9 = eachRecord.FG配送先FAX番号.value;
b10 = eachRecord.FG配送先郵便番号.value;
b11 = eachRecord.FG配送先住所1.value;
b12 = eachRecord.FG配送先住所2.value;
b13 = eachRecord.FG配送先住所カナ.value;
b14 = eachRecord.FG配送先住所カナ.value;
b15 = eachRecord.FG配送先法人個人区分.value;*/
c1 = eachRecord.FG配送指定日.value;
c2 = eachRecord.FG配送指定時間.value;
c3 = eachRecord.FG配送指定月.value;
c4 = eachRecord.FG配送指定旬.value;
c5 = eachRecord.FG表書き.value;
c6 = eachRecord.FG名入れ_1行目.value;
c7 = eachRecord.FG名入れ_2行目.value;
c8 = eachRecord.FG名入れ_3行目.value;
c9 = eachRecord.FG名入れ_4行目.value;

// サブテーブル分ループ
subTable.forEach(function(eachRow) {
if (eachRow.value.FG商品_送料フラグ.value === '商品') {

postRecords.push({
value: {
"FG商品コード": { "value": eachRow.value.FG商品コード.value },
"FG数量": { "value": eachRow.value.FG数量.value },
"FG配送区分": { "value": eachRow.value.FG配送区分.value },
"FG配送元区分": { "value": eachRow.value.FG配送元区分.value },
"FG税区分": { "value": eachRow.value.FG税区分.value }
}
});

}

});

});

postRecords = sort(postRecords, 'FG商品コード', false);
postRecords = sort(postRecords, 'FG税区分', false);
postRecords = sort(postRecords, 'FG配送元区分', false);
postRecords = sort(postRecords, 'FG配送区分', false);



var records = [];
var record = {
'FG商品一覧テーブル': { value: [] },
"FG受注No": { "value":event.record.FG受注No.value },
//注文管理アプリから取得した項目
"FG顧客ランク": { "value": a2 },
"FG顧客コード": { "value": a3 },
"FG家族コード": { "value": a4 },
"FG受注日時": { "value": a5 },
"FG注文者姓名": { "value": a6 },
/*"FG注文者セイメイ": { "value": a7 },
"FG注文者部署名": { "value": a8 },
"FG注文者担当者名": { "value": a9 },
"FG注文者担当者カナ": { "value": a10 },
"FG注文者電話番号": { "value": a11 },
"FG注文者FAX番号": { "value": a12 },
"FG注文者郵便番号": { "value": a13 },
"FG注文者住所1": { "value": a14 },
"FG注文者住所2": { "value": a15 },
"FG注文者住所カナ1": { "value": a16 },
"FG注文者住所カナ2": { "value": a17 },
"FG注文者売掛可否": { "value": a18 },
"FG注文者備考": { "value": a19},

"FG配送先コード": { "value": b1 },*/
"FG受注届先No": { "value": b2 },
/*"FG配送先姓名": { "value": b3 },
"FG配送先セイメイ": { "value": b4 },
"FG配送先部署名": { "value": b5 },
"FG配送先担当者名": { "value": b6 },
"FG配送先担当者カナ": { "value": b7 },
"FG配送先電話番号": { "value": b8 },
"FG配送先FAX番号": { "value": b9 },
"FG配送先郵便番号": { "value": b10 },
"FG配送先住所1": { "value": b11 },
"FG配送先住所2": { "value": b12 },
"FG配送先住所カナ1": { "value": b13 },
"FG配送先住所カナ2": { "value": b14 },
"FG配送先個人法人区分": { "value": b15 },*/

"FG配送指定日": { "value": c1 },
"FG配送指定時間": { "value": c2 },
"FG配送指定月": { "value": c3 },
"FG配送指定旬": { "value": c4 },
"FG表書き": { "value": c5 },
"FG名入れ_1行目": { "value": c6 },
"FG名入れ_2行目": { "value": c7 },
"FG名入れ_3行目": { "value": c8 },
"FG名入れ_4行目": { "value": c9 },

//支払管理アプリの項目
"FG支払方法": { "value":event.record.FG支払方法.value },
"FG売掛方法": { "value":event.record.FG売掛方法.value },
"FGカード会社": { "value":event.record.FGカード会社.value },
"FG請求先区分": { "value":event.record.FG請求先区分.value },
"FG請求先電話番号": { "value":event.record.FG請求先電話番号.value },
"FG請求先セイメイ": { "value":event.record.FG請求先セイメイ.value },
"FG請求先姓名": { "value":event.record.FG請求先姓名.value },
"FG請求先郵便番号": { "value":event.record.FG請求先郵便番号.value },
"FG請求先住所カナ1": { "value":event.record.FG請求先住所カナ1.value },
"FG請求先住所カナ2": { "value":event.record.FG請求先住所カナ2.value },
"FG請求先住所1": { "value":event.record.FG請求先住所1.value },
"FG請求先住所2": { "value":event.record.FG請求先住所2.value },
"FG請求先FAX番号": { "value":event.record.FG請求先FAX番号.value },
"FG請求先個人法人区分": { "value":event.record.FG請求先法人個人区分.value },
"FG請求先部署名": { "value":event.record.FG請求先部署名.value },
"FG請求先担当者名カナ": { "value":event.record.FG請求先担当者名カナ.value },
"FG請求先担当者名": { "value":event.record.FG請求先担当者名.value },

"FG伝票番号": { "value": autoNo },


};
var prevRecord = null;

postRecords.forEach(function(postRecord) {
if (record.FG商品一覧テーブル.value.length >= 6) {
records.push(record);
record = {
'FG商品一覧テーブル': {
value: []
}

};
}

if (prevRecord == null ||
(postRecord.value.FG配送区分.value == prevRecord.value.FG配送区分.value
&& postRecord.value.FG配送元区分.value == prevRecord.value.FG配送元区分.value
&& postRecord.value.FG税区分.value == prevRecord.value.FG税区分.value)) {
record.FG商品一覧テーブル.value.push({
value: {
"FG商品コード": { "value": postRecord.value.FG商品コード.value },
"FG数量": { "value": postRecord.value.FG数量.value },
}
});
} else {
if (record.FG商品一覧テーブル.value.length !== 0) {
records.push(record);
record = {
'FG商品一覧テーブル': {
value: []
}
};
}
record.FG商品一覧テーブル.value.push({
value: {
"FG商品コード": { "value": postRecord.value.FG商品コード.value },
"FG数量": { "value": postRecord.value.FG数量.value },
}
});
}

prevRecord = postRecord;
});

records.push(record);

var postParams = {
app: 73,
records: records
};

kintone.api(appUrl, 'POST', postParams).then(function(){
alert('登録完了');
}).catch(function(error) {
var errmsg = 'レコード更新に失敗しました';
if (error.message !== undefined) {
errmsg += '\n' + error.message;
}
alert(errmsg);
});

}).catch(function(error) {

var errmsg = 'レコードの取得に失敗しました';
if (error.message !== undefined) {
errmsg += '\n' + error.message;
}
alert(errmsg);

});



params = {
"app": 73,
"query": 'FG注文番号 = "' + orderNo + '" order by FG注文番号 asc'
};

kintone.api(appUrl, 'GET', params).then(function(resp) {



});


return event;



});

})();
0
ログインしてコメントを残してください。