# Aアプリ内のフィールド項目をゲストスペースアプリへのフィールドへ登録したい

**URL:** <https://community.cybozu.dev/t/topic/1974>\
**Category:** kintone 開発相談\
**Created:** [2015 年 2 月 21 日午前 3:29 UTC](https://community.cybozu.dev/t/topic/1974 "2015-02-21T03:29:08Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Legacy\_Account1481](https://avatars.discourse-cdn.com/v4/letter/l/a9adbd/32.png) [@Legacy\_Account1481](https://community.cybozu.dev/u/Legacy_Account1481)\
**Post date:** [2015 年 2 月 21 日午前 3:29 UTC](https://community.cybozu.dev/t/topic/1974/1 "2015-02-21T03:29:08Z")

</div>

はじめまして。初めて投稿させて頂きます。  
高橋と申します。宜しくお願い致します。

まだまだ、javascriptについては未熟な部分もあり、  
ご教授頂き、勉強にて自身成長していけたらとおもっております。

タイトルの通り、現在あるAアプリから特定のフィールドをゲストスペース内のBアプリのフィールドへ登録したいとおもっております。

下記、私自身でコードを書いてみました。

/\*  
\* レコードの情報を修理進捗管理へボタン押下後に自動反映する。  
\* @author Kazuya Takahashi [kazuyacambodia@angkorwat.in.net](mailto:kazuyacambodia@angkorwat.in.net)  
\* 登録するレコードは新規作成  
\*/

(function () {  
“use strict”;

```
//他のアプリID
var otherAppId = 330;

kintone.events.on('app.record.detail.show',function(event){
    var record = event.record;

    //メニュー、右側にボタンを設置する
    var myIndexButton = document.createElement('button');
    myIndexButton.id = 'my_index_button';
    myIndexButton.innerHTML = '修理進捗管理へ保存';
    myIndexButton.onclick = function () {
        window.alert('修理進捗アプリへ登録しますか？')

        var enquiry = record.otoiawase1.value;
        var enquiry1 = record.color.value;
        var contents = record.content.value;

        var params = {
            app:otherAppId,
            record:{
                端末名:{
                    value:enquiry
                },
                カラー:{
                    value:enquiry1
                },
                症状:{
                    value:contents
                }
            }
        };
        kintone.api('/k/v1/records','POST',params);
    };
    kintone.app.record.getHeaderMenuSpaceElement().appendChild(myIndexButton);
});

```

})();

宜しくお願い致します。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1574](https://avatars.discourse-cdn.com/v4/letter/l/76d3ee/32.png) [@Legacy\_Account1574](https://community.cybozu.dev/u/Legacy_Account1574)\
**Post date:** [2015 年 2 月 21 日午前 10:28 UTC](https://community.cybozu.dev/t/topic/1974/2 "2015-02-21T10:28:26Z")

</div>

ゲストスペース内のアプリに対してはURLが若干変わり[/k/guest/(スペースのID)/v1/records.json](https://cybozudev.zendesk.com/hc/ja/articles/202166160#step2)となります。  
なお、ゲストスペースへのリクエストか否かを意識しないですむ方法が「[kintone.apiにゲストスペースでも使える正しいパスを指定する](https://cybozudev.zendesk.com/hc/ja/articles/202707864)」というTipsで紹介されています。

また、記載されているボディの形式は「[レコードの登録（1件）](https://cybozudev.zendesk.com/hc/ja/articles/202166160#step1)」での記載方法になりますので、次のようにすると良いのではないかと思います。

```
(function () {
    "use strict";

    //他のアプリID
    var otherAppId = 330;

    kintone.events.on('app.record.detail.show',function(event){
        var record = event.record;

        //メニュー、右側にボタンを設置する
        var myIndexButton = document.createElement('button');
        myIndexButton.id = 'my_index_button';
        myIndexButton.innerHTML = '修理進捗管理へ保存';
        kintone.app.record.getHeaderMenuSpaceElement().appendChild(myIndexButton);

        myIndexButton.onclick = function () {
            window.alert('修理進捗アプリへ登録しますか？')

            var enquiry = record.otoiawase1.value;
            var enquiry1 = record.color.value;
            var contents = record.content.value;

            var params = {
                app:otherAppId,
                record:{
                    端末名:{
                        value:enquiry
                    },
                    カラー:{
                        value:enquiry1
                    },
                    症状:{
                        value:contents
                    }
                }
            };

            kintone.api(kintone.api.url('/k/v1/record', true), 'POST', params, function(resp) {});

        };
    });
})();

```

いかがでしょうか？

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1481](https://avatars.discourse-cdn.com/v4/letter/l/a9adbd/32.png) [@Legacy\_Account1481](https://community.cybozu.dev/u/Legacy_Account1481)\
**Post date:** [2015 年 2 月 22 日午前 8:36 UTC](https://community.cybozu.dev/t/topic/1974/3 "2015-02-22T08:36:55Z")

</div>

Ryu Yamashita 様

ご回答ならびアドバイス有難うございました。

その後、試行錯誤しておりますが、下記の通り書き換えましたが、エラーが返ってくるのみとなっており苦戦しております。

(function () {  
“use strict”;

```
//他のアプリID
var otherAppId = 330;

kintone.events.on('app.record.detail.show',function(event){
    var record = event.record;

    //メニュー、右側にボタン
    var myIndexButton = document.createElement('button');
    myIndexButton.id = 'my_index_button';
    myIndexButton.innerHTML = '修理進捗管理へ保存';
    kintone.app.record.getHeaderMenuSpaceElement().appendChild(myIndexButton);

    myIndexButton.onclick = function () {
        window.alert('修理進捗アプリへ登録しますか？')

        var enquiry = record.otoiawase1.value;
        var enquiry1 = record.color.value;
        var contents = record.content.value;

        var params = {
            "app":otherAppId,
            "record":{
                "端末名":{
                    "value":enquiry
                },
                "カラー":{
                    "value":enquiry1
                },
                "症状":{
                    "value":contents
                }
            }
        };

        kintone.api(
            kintone.api.url('/k/v1/records',true),
            'POST' ,
            params , 
            function(resp){
                alert('登録が完了しました')
            },
            function(resp){
                alert('登録エラー')
            }
        ); 
    };
});

```

})();

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1574](https://avatars.discourse-cdn.com/v4/letter/l/76d3ee/32.png) [@Legacy\_Account1574](https://community.cybozu.dev/u/Legacy_Account1574)\
**Post date:** [2015 年 2 月 22 日午前 8:46 UTC](https://community.cybozu.dev/t/topic/1974/4 "2015-02-22T08:46:43Z")

</div>

> また、記載されているボディの形式は「レコードの登録（1件）」での記載方法になりますので、次のようにすると良いのではないかと思います。

こちらが修正されていないようです。

[レコードの一括登録(records.json)](https://cybozudev.zendesk.com/hc/ja/articles/202166160#step2)と[レコードの登録（1件）(record.json)](https://cybozudev.zendesk.com/hc/ja/articles/202166160#step1)はリクエストボディへの記載方法が異なりますので、ご確認頂ければと思います。

[レコードの一括登録(records.json)](https://cybozudev.zendesk.com/hc/ja/articles/202166160#step2)を使われたいのであれば、  
paramsが次のようになると思います。

```
{
    "app": otherAppId,
    "records": [
        {
            端末名:{
                value:enquiry
            },
            カラー:{
                value:enquiry1
            },
            症状:{
                value:contents
            }
        }
    ]
}

```

また、パッと見ですが、alert() の後ろのセミコロンが抜けているようです。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1574](https://avatars.discourse-cdn.com/v4/letter/l/76d3ee/32.png) [@Legacy\_Account1574](https://community.cybozu.dev/u/Legacy_Account1574)\
**Post date:** [2015 年 2 月 22 日午前 9:00 UTC](https://community.cybozu.dev/t/topic/1974/5 "2015-02-22T09:00:32Z")

</div>

kintone REST APIをJavaScriptからコールする際のデバッグにはこの辺（[1](https://www.joyzo.co.jp/blog/544), [2](http://yamaryu0508.hatenablog.com/entry/2014/09/16/000440)）を参考にされるのも良いかと思います。

REST APIをJavaScriptからコールして上手くいかない時には、POSTMAN等他の方法でまずコールしてみるのは、3者意見的に問題解決への近道になることがあります。正味のコール部分以外kintone JavaScript APIの機能が使えないというのはありはしますが。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1481](https://avatars.discourse-cdn.com/v4/letter/l/a9adbd/32.png) [@Legacy\_Account1481](https://community.cybozu.dev/u/Legacy_Account1481)\
**Post date:** [2015 年 2 月 22 日午前 9:01 UTC](https://community.cybozu.dev/t/topic/1974/6 "2015-02-22T09:01:21Z")

</div>

Ryu Yamashita 様

早速のご回答、アドバイス有難うございます。  
勉強になります。参考にさせて頂きます。
