Gucchiy / neo

0 stars 0 forks source link

GH日記の内容を WP 側で公開 #45

Open Gucchiy opened 2 years ago

Gucchiy commented 2 years ago

毎日の夕食を https://nponeo.cybozu.com/k/105/ アプリ:GH日誌 に投稿していて、それをWordPress側にも反映したいとの話がありました。 運用上は、Kintone-WordPress-日記-SWELL にも投稿してくださいとなり、2度手間になります。 ここで アプリ:GH日誌 と Kintone-WordPress-日記-SWELL が同期できればよいと思いました。そんなことはkintoneでできますか。 仕様 アプリ:GH日誌 と Kintone-WordPress-日記-SWELL が同期 Kintone-WordPress-日記-SWELL側に同期する内容 タイトル 表示日時(kintoneフィールド)+メニュー(kintoneフィールド) 本文 世話人日誌(公開してよければ/kintoneフィールド) カテゴリ 毎日の夕食 に自動チェック 添付写真 Kintone-WordPress-日記-SWELLは通常通り承認が必要。 Kintone-WordPress-日記-SWELLに手動で割り込んで何か投稿した際、同期に問題がないか確認する。

上記内容(Kintone 上の GH日記 への Post/編集を Kintone-WordPress-日記-SWELL と同期)を Kintone API で実現します。 参考 URL: https://developer.cybozu.io/hc/ja/articles/201941984#step2 https://developer.cybozu.io/hc/ja/articles/360028177472

コードは Kintone プラグインの JSEdit for kintone を利用して作成するとのこと。

Gucchiy commented 2 years ago

まずは、Kintone API をどのように使って Kintone をカスタマイズするのか理解させてください。 @miura894 現在どうやってテストしているか、手順を書いていただくことは可能ですか?(複雑なようでしたら、私の方で調べますので、本業に影響しない、ご無理のない範囲で・・)

myama2 commented 2 years ago

横から失礼します。

@miura894 現在どうやってテストしているか、手順を書いていただくことは可能ですか?(複雑なようでしたら、私の方で調べますので、本業に影響しない、ご無理のない範囲で・・)

miura894にJavaScriptの練習がてらお願いしています。 GH日誌で登録ボタンをフックして、APIを使ってkintone-swellにも登録をするようにします。 手順はGH日誌でjseditを使って実際にコードをtry&errorで書いてくれてます。

genepine commented 2 years ago

発注者なので。 参考 URL: を見るのが良いと思います。 https://developer.cybozu.io/hc/ja/articles/201941984#step2 https://developer.cybozu.io/hc/ja/articles/360028177472 Kintoneアプリ DBのレコードと自作の入力フォームの集合体 それに独自のjs/cssを読み込む機能がついている という理解です。

miura894 commented 2 years ago

@Gucchiy すみません。Github慣れておらず、遅くなりました💦

テストは、山下さんが言ってくれた通りです。 kintoneホーム日誌アプリのフライグインJSEditにコードを保存、別ウィンドウで開いているkintoneホーム日誌のconsoleで動いたかなと確認してます。

1 ホーム日誌のレコード追加が新規なのか更新なのかを判定 2 新規の場合 kintone-swellへ各フィールドを指定し新規登録 レコード番号をホーム日誌のフィールド「swell_id」へコピー 3 更新の場合 kintone-swellから、「ホーム日誌のswell_id=kintone-swellのレコード番号」のレコードをピックアップして修正

したいことは上記のような感じです。 今1の段階で、”ただ判定できたかも”というような状態です。

@genepine ありがとうございます。

miura894 commented 2 years ago

@Gucchiy GH日誌のメニューフィールド「テスト用」のレコードを作っていて、そのレコードで反映されるのか試しています。

miura894 commented 2 years ago

@Gucchiy 先程はありがとうございました。 早速ですが、↓ テスト用(STO/GH日誌) https://nponeo.cybozu.com/k/251/ を作成しました。    |テスト用(GH日誌)  |https://nponeo.cybozu.com/k/251/  |三浦はこっちを使っています。

テスト用に投げている先の↓案件管理アプリです。 https://nponeo.cybozu.com/k/234/

1 ホーム日誌のレコード追加が新規なのか更新なのかを判定 2 新規の場合 kintone-swellへ各フィールドを指定し新規登録 レコード番号をホーム日誌のフィールド「swell_id」へコピー 3 更新の場合 kintone-swellから、「ホーム日誌のswell_id=kintone-swellのレコード番号」のレコードをピックアップして修正

1→済です。 2のテストで、テスト用アプリ「GH日誌(テスト用)」「案件管理」を使用。 新規レコード追加→済 「案件管理」新規レコード・フィールド内にGH日誌の値をコピー→済

次に案件管理アプリに新規追加されたレコードのフィールド「wordpress_id」に、レコード番号をコピーしたいです。 これは案件管理で追加されたレコード側のレコード番号をコピーしたいのですが・・・。

miura894 commented 2 years ago

すみません、URL間違えました。 テスト用に投げている先の↓案件管理アプリです。 https://nponeo.cybozu.com/k/233/

miura894 commented 2 years ago

kintone 値(resp.id)がフィールド(wordpress_id)に反映されず、困っております。 以下、反映されないコードです、、、。 問題個所など、ご教示頂けますと幸いです。

(function($) { "use strict";

//・GH日誌の登録と更新時にこのコードを実行する
//・Kintone-WordPress-日記-SWELLに書き込んだことがあれば、そのレコード番号がGH日誌のwordpress_id項目に入る

kintone.events.on(['app.record.create.submit', 'app.record.edit.submit'], function(e) {
    // 登録と更新時に実行する
    //まず、wordpress_idをチェック 数字が入っていなければ新規、入っていれば更新とする
    var record = e.record;
    var wordpress = record.wordpress_id;

         if(!wordpress.value){
         //↑↑空白だったら
        console.log('新規'); //新規の場合

            var body = {
              'app': 233,
              'record': {
               '会社名': {
               'value': record.menu.value//成功
                     },
                '単価':{
                 'value': '100'//成功(GH日誌内のデータを入れるには・・・・?)
                       },
                    }
                };

              kintone.api(kintone.api.url('/k/v1/record.json', true), 'POST', body, function(resp) {
                 var resp2 = kintone.app.record.get(); //呼び出す。
                 resp2.record.wordpress_id.value = resp.id;
                 kintone.app.record.set(resp2); //セットする。
                 console.log(resp2.record);
                 alert(resp.id); 

                },function(error) {
                error,
                console.log(error);
                }); //新規ここまで    

        }else{
          console.log('更新');
            //更新の場合
               } 

     });      })();

↓GH日誌 console.log は以下の結果です。

$id: {type: 'ID', value: '90'} $revision: {type: 'REVISION', value: '54'} date: {type: 'DATE', value: '2022-05-06'} disp_date: {type: 'SINGLE_LINE_TEXT', value: '2022年5月6日'} eat_other: {type: 'SINGLE_LINE_TEXT', value: ''} eat_peple: {type: 'CHECK_BOX', value: Array(0)} eat_staff: {type: 'USER_SELECT', value: Array(0)} make_staff: {type: 'USER_SELECT', value: Array(0)} menu: {type: 'MULTI_LINE_TEXT', value: ''} pic: {type: 'FILE', value: Array(0)} pic2: {type: 'FILE', value: Array(0)} wordpress_id: {type: 'SINGLE_LINE_TEXT', value: '207'} チェックボックス: {type: 'CHECK_BOX', value: Array(0)} チェックボックス_0: {type: 'CHECK_BOX', value: Array(0)} ラジオボタン: {type: 'RADIO_BUTTON', value: '配食'} レコード番号: {type: 'RECORD_NUMBER', value: '90'} 作成日時: {type: 'CREATED_TIME', value: '2022-04-09T04:55:00Z'} 作成者: {type: 'CREATOR', value: {…}} 文字列_複数行: {type: 'MULTI_LINE_TEXT', value: ''} 曜日: {type: 'SINGLE_LINE_TEXT', value: '(金)'} 更新日時: {type: 'UPDATED_TIME', value: '2022-04-11T04:03:00Z'} 更新者: {type: 'MODIFIER', value: {…}}

長々とすみません。 consoleでは「207」と数字が反映されているのですが、レコードを開くとフィールドは空白のままです。

★kintone デペロッパーのこのページを参考にしてみました。反映されませんでした。 https://developer.cybozu.io/hc/ja/community/posts/900001439586-%E7%94%BB%E9%9D%A2%E3%81%AB%E5%80%A4%E3%81%8C%E5%8F%8D%E6%98%A0%E3%81%95%E3%82%8C%E3%81%AA%E3%81%84%E4%BB%B6