クエリ
URL:/rest/my-mission/api/my-mission/list/
パラメータ入力(postbody):形式の例は次のとおりです。
すべてのAPIは、使用前にセキュリティコード(security)とともに取得する必要があります。取得方法については、【RESTAPI > セキュリティコード】を参照してください。
{
"security" : "<セキュリティコード>",
"omflow_restapi" : 1,
"search_columns" : [],
"search_conditions" : [],
"exclude_conditions" : [],
"order_columns" : [],
"limit" : 100,
"start" : 0
}
search_columns:オプション、クエリするフィールドの項目名。次のフォームの例。
"search_columns" : ["id", "status", "level"]
search_columnsが入力されていない場合、クエリフォームのフィールド名、フィールド値が返されます。
search_conditions:オプションで、条件を満たすデータを除外します。 配列内の各条件はJSONオブジェクト構造であり、各条件はAND関係です。デフォルトでは、全データをクエリします。 (1) column:フィールドID。
(2) condition:条件文字。以下5つのタイプに分類されます。
● =:値とまったく同じようにデータを除外します。 ● >:値より大きいデータを除外します。
● <:値より小さいデータを除外します。 ● in:値の配列と同じデータをフィルターで除外します。 ● contains:値を含むデータを除外します。 (3) value:フィールド値。
"search_conditions" :
[
{
"column" : "status",
"condition" : "in",
"value" : ["アサイン", "レビュー中"]
},
{
"column" : "id",
"condition" : ">",
"value" : 3
},
<その他の条件>,...
]
exclude_conditions:オプションで、条件を満たすデータを除外します。形式はsearch_conditionsと同じです。デフォルトでは、条件を除外しません。
order_columns:オプションで、指定したフィールドに従ってソートします。 逆順に並べ替える必要がある場合は、フィールド名の前に"-"記号を追加してください。デフォルトでは["id"]で並べ替えられます。
#ソート
"order_columns" : ["id"]
#逆ソート
"order_columns" : ["-id"]
limit:オプションで、数値を入力してデータ数を取得します。デフォルトは100です。
start:オプションで、取得する最初のデータから数を入力します。デフォルトは0番目です。
例1:start=0,limit=100,100データを返す。
例2:start=1,limit=100,99データを返す。
例3:start=100,limit=100,0データを返す。
データの返る
成功した場合、以下は返されるデータの例です。
{
"status": 200,
"message": "クエリ成功。",
"result": [
{
"id": 6,
"flow_uuid": "67d4cf9a-49cd-4341-90da-b899eb0219b1",
"flow_name": "問題管理",
"status": "アサイン",
"level": "",
"title": "123",
"data_no": 1, #フォーム番号
"data_id": 4, #データ番号、処理する時に必要なパラメータ
"history": false,
"stop_uuid": "FITEM_7", #フォームの現在のステージ
"stop_chart_text": "人工でアサイン", #コンポーネント名
"create_user_id": "system",
"update_user_id": null,
"ticket_createtime": "2020-07-07T13:50:21.494",
"createtime": "2020-07-07T13:50:21.589",
"updatetime": "2020-07-07T13:50:21.589",
"assignee_id": null,
"assign_group_id": 1,
"action": ",",
"attachment": false, #添付ファイルがあるかどうか
"closed": false,
},.....
]
}
失敗した場合、以下は返されるデータの例です。
{
"status": 404,
"message": "クエリ失敗,エラー:<エラーメッセージ>",
"result": []
処理
URL:/rest/flowmanage/api/omdata/edit/<api_path>
パラメータ入力(postbody):形式の例は次のとおりです。
すべてのAPIは、使用前にセキュリティコード(security)とともに取得する必要があります。取得方法については、【RESTAPI > セキュリティコード】を参照してください。
現在、URL上のapi_pathは手動検索するのみです。
apiルートの検索方法は【アプリケーション管理 > アプリケーション設計】を参照してください。
今後のバージョンは私のタスクリストにapi_pathのフィールドを追加する予定です。
{
"security": "<security>",
"omflow_restapi": 1,
"action": "update",
"data_id": "<data_id>",
"formdata": [
{
"id": "<FORMITM_X>",
"value": "<フィールド值>"
},
{
"id": "FORMITM_X",
"value": "<フィールド值>"
},......
]
}
action:必要,"update"入力すればいい。
data_id:必要,APIで検索するdata_idを入力する。
formdata:オプション,修正するフィールドとその内容を入力する。
データの返る
成功した場合、以下は返されるデータの例です。
{
"status": "200",
"message": "処理成功",
"result": ""
}
クイック操作
URL:/rest/flowmanage/api/omdata/edit/<api_path>
パラメータ入力(postbody):形式の例は次のとおりです。
すべてのAPIは、使用前にセキュリティコード(security)とともに取得する必要があります。取得方法については、【RESTAPI > セキュリティコード】を参照してください。
現在、URL上のapi_pathは手動検索するのみです。
apiルートの検索方法は【アプリケーション管理 > アプリケーション設計】を参照してください。
今後のバージョンは私のタスクリストにapi_pathのフィールドを追加する予定です。
{
"security": "<security>",
"omflow_restapi": 1,
"action": "update",
"data_id": "<data_id>",
"quick_action": "<action1/action2>"
}
action:必要,"update"入力すればいい。
data_id:必要,APIで検索するdata_idを入力する。
quick_action:必要,action1またはaction2を入力する。
データの返る
成功した場合、以下は返されるデータの例です。
{
"status": "200",
"message": "処理成功",
"result": ""
}
コードの例
Python
私のタスクリストを検索し、指定したフローに対して処理を実行する。
#====================================
# OMFLOW 私のタスクの例
# https://doc.omflow.com.tw/api-jie-shao/wo-de-ren-wu を参照してください。
#====================================
import sys,requests,json
url = 'https://1.2.3.4' # OMFLOW サーバの位置
url_login = '/accounts/api/security/get/'
url_my_mission = '/rest/my-mission/api/my-mission/list/'
url_action = '/rest/flowmanage/api/omdata/edit/'
api_path = 'some-api-path-syscom' #処理するタスクのAPI Pathを指定する(アプリケーション管理、アプリのリリースで確認可能)
api_id = '38ea93dc82za39as0a38ei1' #処理するタスクのuuidを指定する(該当のタスクを開き、URL列で確認可能)
data_security = '' #ログイン成功時のセキュリティコードの保存
#====================================
# OMFLOWにログイン
# ドメイン変数: data_security , url , url_login
# 入力 : user=アカウント , pwd=パスワード
# 戻り値 : 200 = 成功
#====================================
def login(user,pwd):
global data_security
response = requests.get( url + url_login, auth=( user, pwd ))
data = response.json()
data_code_int = data['status']
data_security = data['result']['security']
return data_code_int
#====================================
# 私のタスクリストの取得
# ドメイン変数: data_security , url , url_my_mission
# 入力 : 無
# 戻り値 : 私のタスクリスト(JSON形式)
#====================================
def myMissonList():
values={
"security" : data_security,
"omflow_restapi" : 1,
"search_columns" : [],
"search_conditions" : [],
"exclude_conditions" : [],
"order_columns" : [],
"limit" : 100,
"start" : 0
}
response = requests.post( url + url_my_mission, data=values )
data = response.json()
data_list = data['result']
return data_list
#====================================
# 指定されたプロセスの承認
# ドメイン変数: data_security , url , url_action , api_path , api_id
# 入力 : 私のタスクリスト(JSON形式)
# 戻り値 : 無
#====================================
def approve(data_list):
#列印 data_list すべてのデータを取得可能
for item in data_list:
data_flow_uuid = item['flow_uuid']
data_data_id = item['data_id']
if data_flow_uuid.replace('-','') == api_id:
#組織の処理内容、アプリケーション管理、アプリのリリースで例として利用可能
values = {
"security": data_security,
"omflow_restapi": 1,
"action": "update",
"data_id": data_data_id,
"formdata": [
{
"id": "FORMITM_5",
"value": "承認済"
}
]
}
response = requests.post( url + url_action + api_path, data= json.dumps(values))
print('flow:' + data_flow_uuid + ',data:' + str(data_data_id) + ',approved.')
#MAIN
if len(sys.argv) != 3:
print('error')
else:
if login(sys.argv[1] , sys.argv[2]) == 200:
approve(myMissonList())
PowerShell
私のタスクリストの検索
#====================================
# OMFLOW my mission example
# refrence https://doc.omflow.com.tw/api-jie-shao/wo-de-ren-wu
#====================================
#url = OMFLOW Server URL
#token = user password
#user = user name
$url = 'https://1.2.3.4'
$token='password'
$user ='user'
$api_path = 'some-api-path-syscom'
$api_id = '1ko2kme1o9a120a03a0dfs'
$url_login = '/accounts/api/security/get/'
$url_my_mission = '/rest/my-mission/api/my-mission/list/'
$url_action = '/rest/flowmanage/api/omdata/edit/'
$security = ''
$auth = $user + ':' + $token
$encoded = [System.Text.Encoding]::UTF8.GetBytes($auth)
$authorizationInfo = [System.Convert]::ToBase64String($encoded)
$headers = @{"Authorization"="Basic $($authorizationInfo)"}
$result = Invoke-WebRequest -Uri "$url$url_login" -Method GET -Headers $headers
if ($result.StatusCode -eq 200)
{
$result_json = $result.Content | ConvertFrom-Json
#echo $result_json.status
#echo $result_json.message
$security = $result_json.result.security
}
else
{
echo "login fail."
}
if ($security -ne "")
{
$postParams = @{
"security"=$security;
"omflow_restapi"=1;
"search_columns"=@();
"search_conditions"=@();
"exclude_conditions"=@();
"order_columns"=@();
"limit"=100;
"start"=0
}
$result = Invoke-WebRequest -Uri "$url$url_my_mission" -Method POST -Body $postParams
$result_json = $result.Content | ConvertFrom-Json
$count = $result_json.result.length
echo "total $count mission"
}