Unity에서 kintone 앱 레코드를 승인하는 방법

소개



이 기사에서는 kintone 앱에서 설정한 프로세스 관리을 Unity 내에서 조작하는 방법을 안내합니다. 실현 방법에 주력하고 싶기 때문에, 「Unity의 플레이어가 스페이스 키를 누르면, 특정의 레코드가 승인된다」라고 하는 간단한 시나리오로 합니다.


이 예제에서는 JSON을 쉽게 작성할 수 있도록 SimpleJSON을 사용합니다. 프로젝트 내에서 사용하는 방법은 다음 기사를 참조하십시오.
- Unity에서 kintone REST API를 두드리는 방법

kintone 앱 준비



프로세스 관리를 설정한 앱을 만드세요.
kintone 환경이 없는 분은 cybozu developer network 이 페이지

필드 설정



원하는 필드를 설정하세요.

프로세스 관리 설정



앱의 설정 화면에서 설정 탭 → 프로세스 관리로 전환하면 프로세스 관리 설정을 활성화할 수 있습니다.
이 기사의 예에서는 "특정 사용자"가 작업자로 설정된 레코드를 "승인"이라는 액션으로 프로세스 관리 상태를 "승인 완료"로 진행한다"는 것을 REST API로 실행합니다. REST API를 실행할 때이 "특정 사용자"로 암호 인증을 수행합니다.
아래와 같이 프로세스 관리를 설정합시다.


설정이 끝나면 저장하고 앱을 게시/업데이트하세요.

스크립트 준비



샘플 코드로 간단하게 표시하고 싶기 때문에 특정 앱의 특정 레코드에 대해 프로세스를 진행하는 내용으로 합니다.
아래 샘플 코드의 {하위 도메인 이름}, {Base64로 인코딩된 '사용자 이름: 비밀번호'}, {앱 ID}, {레코드 ID}는 해당 환경에 맞도록 변경하십시오. kintone의 REST API 인증에 대한 자세한 내용은 cybozu developer network 여기 페이지에서 확인할 수 있습니다.

testAPI.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
using SimpleJSON;
using System.Text;

public class testAPI : MonoBehaviour
{
    const string domain = "{サブドメイン名}.cybozu.com";
    const string passwordauth = "{Base64エンコードされた『ユーザ名:パスワード』}";

    void Start()
    {

    }

    void Update()
    {
        if (Input.GetKeyDown("space"))
        {
            print("space key was pressed");
            int WorkflowappID = {アプリID};
            int workflowRecordID = {レコードID};
            StartCoroutine(updateRecordStatus(WorkflowappID, workflowRecordID, "承認"));
        }
    }

    private IEnumerator updateRecordStatus(int appID, int recordID, string action)
    {
        //APIエンドポイントの作成
        string RequestURL = "https://" + domain + "/k/v1/record/status.json";

        //ボディで送るJSONを作る → {"action":"承認","app":15,"id":1}
        JSONObject APIrequestBody = new JSONObject();
        APIrequestBody.Add("action", action);
        APIrequestBody.Add("app", appID);
        APIrequestBody.Add("id", recordID);

        //APIの実行前の準備
        UnityWebRequest request = new UnityWebRequest(RequestURL, "PUT");
        byte[] putData = Encoding.UTF8.GetBytes(APIrequestBody.ToString());
        request.uploadHandler = (UploadHandler)new UploadHandlerRaw(putData);
        request.SetRequestHeader("X-Cybozu-Authorization", passwordauth);
        request.SetRequestHeader("Content-Type", "application/json");

        //APIを実行
        yield return request.SendWebRequest();
    }
}


사용한 kintone REST API 문서는 여기에서 확인할 수 있습니다.
- 레코드 상태 업데이트

실행 결과



kintone 앱에 새 레코드를 추가하여 수동으로 상태를 "승인 대기"진행합니다.
작업자로 선택하는 것은 Unity 스크립트 내에서 암호 인증을 수행하는 사용자입니다.


Unity 게임 내에서 스페이스바를 누릅니다.


kintone 앱 레코드의 최신 정보를 보려면 브라우저를 새로 고칩니다.
스테이터스가 《승인됨》이 되어 있을 것입니다. 기록 탭을 클릭하면 어떤 사용자가 언제 상태를 진행했는지 알 수 있습니다.

좋은 웹페이지 즐겨찾기