コードコンポーネント
位置:[メインメニュー]>アプリケーション管理>アプリケーション設計>[任意のアプリ]>[任意のフロー]>フロー設計>コードコンポーネント
ここではPythonコードを提供し、ユーザーは「コードコンポーネント」で直接OMFLOWの機能を操作できます。説明は下記のとおりです。
新しいデータを作成
#インポート
from omflow.syscom.tools import OmData
#1つのプロセスのオブジェクトを告知する
api_path = 'incident-managment'
inc_flow_obj = OmData(api_path)
#フォームデータを記入(オプション、プロセス要件により記入)
inc_flow_obj.setFormData('formitm_1', 'Apacheサービス異常')
inc_flow_obj.setFormData('formitm_2', 'red')
inc_flow_obj.setFormData('formitm_3', '1')
#プロセス変数を記入(オプション、プロセス要件により記入)
inc_flow_obj.setFlowVariable('message', 'success')
inc_flow_obj.setFlowVariable('password', '1234567')
#作成フローの送付
user_id = '1' #ユーザ番号
files = None #ファイル
result = inc_flow_obj.create(user_id, files)
#返事の取得
data_no = result['data_no'] #フォーム番号
status = result['status'] #状態True/False
message = result['message'] #エラーメッセージ、作成が成功した場合は空文字列となる
推進
#インポート
from omflow.syscom.tools import OmData
#1つのプロセスのオブジェクトを告知する
api_path = 'incident-managment'
inc_flow_obj = OmData(api_path)
#フォームデータを記入(オプション、プロセス要件により記入)
inc_flow_obj.setFormData('formitm_1', 'Apache服務異常')
inc_flow_obj.setFormData('formitm_2', 'red')
inc_flow_obj.setFormData('formitm_3', '1')
#推進
data_id = '345' #データ番号(リストから取得可能)
user_id = '1' #ユーザ番号
files = None #ファイル
result = inc_flow_obj.update(data_id, user_id, files)
#返事の取得
data_no = result['data_no'] #フォーム番号
status = result['status'] #状態True/False
message = result['message'] #エラーメッセージ、作成が成功した場合は空文字列となる
リスト
#インポート
from omflow.syscom.tools import OmData
#1つのプロセスのオブジェクトを告知する
api_path = 'incident-managment'
inc_flow_obj = OmData(api_path)
#リスト
search_conditions = [
{
'column':'history',
'condition':'=',
'value':False
}, #クエリ条件、非データ履歴
{
'column':'running',
'condition':'=',
'value':False
}, #クエリ条件、非実行状態データ
{
'column':'error',
'condition':'=',
'value':False
}, #クエリ条件、查詢非異常資料
]
search_columns = [
'data_no',
'formitm_1'
] #フィールド取得、フォーム番号とフィールド1を取得する
exclude_conditions = [
{
'column':'closed',
'condition':'=',
'value':True
}
] #除外条件、完成フォームのデータを除外
order_columns = ['-data_no'] #フォーム番号で逆ソート
limit = 0 #すべてのデータを取得(値が100の場合は、最初の100個のデータを取得すること)
start = 0 #最初のデータから始める
result = inc_flow_obj.list(search_conditions, search_columns, exclude_conditions, order_columns, limit, start)
#返事の取得
#返事の詳細は REST API紹介>フォームをクエリを参照してください
削除
#インポート
from omflow.syscom.tools import OmData
#1つのプロセスのオブジェクトを告知する
api_path = 'incident-managment'
inc_flow_obj = OmData(api_path)
#削除
data_no_list = [] #フォーム番号配列
result = inc_flow_obj.delete(data_no_list)
#返事の取得
status = result['status'] #状態True/False
message = result['message'] #エラーメッセージ、作成が成功した場合は空文字列となる
##高度な推進
この方法は、data_idを使用して作成ではなく、ユーザーが指定した条件でクエリを行い、クエリ後は後続の設定に従って推進する。
#インポート
from omflow.syscom.tools import OmData
#1つのプロセスのオブジェクトを告知する
api_path = 'incident-managment'
inc_flow_obj = OmData(api_path)
#フォームデータを記入(オプション、プロセス要件により記入)
inc_flow_obj.setFormData('formitm_1', 'Apacheサービス異常')
inc_flow_obj.setFormData('formitm_2', 'red')
inc_flow_obj.setFormData('formitm_3', '1')
#推進
condition = {} #クエリ条件
'''
conditionは2種類のデータ(list/dict)を受け付ける
シナリオ1、フォーム番号イコール5のフローをクエリして推進する
listの書き方:
condition = []
con = {'column':'data_no','condition':'=','value':5}
condition.append(con)
dictの書き方:
condition = {'data_no':5}
シナリオ2、フォーム番号が5より大きいのをクエリして推進する
listの書き方:
condition = []
con = {'column':'data_no','condition':'>','value':5}
condition.append(con)
dictの書き方:
condition = {'data_no__gt':5}
シナリオ3、フォーム番号が5より大きいのをクエリし、しかもある入力フィールドの値イコールtestのフローを推進する
listの書き方:
condition = []
con1 = {'column':'data_no','condition':'>','value':5}
condition.append(con1)
con2 = {'column':'formitm_1','condition':'=','value':'test'}
condition.append(con2)
dictの書き方:
condition = {'data_no__gt':5, 'formitm_1':'test'}
'''
user_id = '1' #ユーザ番号
files = None #ファイル
update_duplicate = False #条件付きクエリによって返されたデータが複数となる場合、すべてプ推進するか。もしそうでなければ、すべてを推進せず、失敗のメッセージを送り返す。
update_duplicate_interval = 0 #推進するデータが複数となる場合、推進ごとの間隔(秒単位)
wait_time_max = 0 #クエリしたデータが0となる場合、n回をクエリし、n回のクエリ以降も0となったら失敗のメッセージを送り返す。
wait_time_seconds = 0 #毎回再クエリの間隔(秒単位)
result = inc_flow_obj.advanced_update(condition, user_id, files, update_duplicate, update_duplicate_interval, wait_time_seconds, wait_time_max)
#返事の取得
status = result['status'] #状態True/False
message = result['message'] #メッセージを返す。推進成功data_idまたは失敗のメッセージを送り返す。
ユーザーの作成
#インポート
from omflow.syscom.tools import User
#1つのプロセスのオブジェクトを告知する
user_obj = User()
#ユーザーデータを記入(必要)
username = 'a12345'
token = 'aA!123456'
nick_name ='王小明'
email = 'a12345@gmail.com'
#ユーザーデータを記入(オプション)
#記入可能なフィールド
#birthday, gender, phone1, phone2, company, default_group, ad_no, extension_no
other_param_dict = {}
other_param_dict['ad_no'] = '001234'
other_param_dict['phone1'] = '0911111111'
#ユーザーを作成
result = user_obj.create(username, token, nick_name, email, other_param_dict)
#返事の取得
user_id = result['user_id'] #ユーザ番号
status = result['status'] #状態True/False
message = result['message'] #エラーメッセージ、作成が成功した場合は空文字列となる
ユーザーの更新
#インポート
from omflow.syscom.tools import User
#1つのプロセスのオブジェクトを告知する
user_obj = User()
#修正するユーザーを選択する(必要、user_idまたはusernameのいずれを記入)
user_id = None
username = None
#パスワードの変更(オプション)
token = 'aA!123456'
#ユーザーフィールドの更新(オプション)
#記入可能なフィールド
#email, birthday, gender, phone1, phone2, company, default_group, ad_no, extension_no
other_param_dict = {}
other_param_dict['phone1'] = '0911111111'
#ユーザーの更新
result = user_obj.update(user_id, username, token, other_param_dict)
#もし result = 'success' であれば成功、失敗した場合は失敗のメッセージを送り返す
ユーザーリストのクエリ
#インポート
from omflow.syscom.tools import User
#1つのプロセスのオブジェクトを告知する
user_obj = User()
#クエリ条件(下記は例です。実際のニーズにより記入してください)
search_conditions = [
{
'column':'gender',
'condition':'=',
'value':'female'
}, #クエリ条件、女性ユーザー
]
search_columns = [
'username',
'email'
] ##フィールド取得、アカウントとメールアドレスを取得する
exclude_conditions = [
{
'column':'is_active',
'condition':'=',
'value':False
}
] #除外条件、無效のユーザーを除外する
order_columns = ['-username'] #アカウントで逆ソート
limit = 0 #すべてのデータを取得(値が100の場合は、最初の100個のデータを取得すること)
start = 0 #最初のデータから始める
#ユーザーをクエリ
result = user_obj.list(search_conditions, search_columns, exclude_conditions, order_columns, limit, start)
#返事の取得
#返事の詳細は REST API紹介>フォームをクエリを参照してください
単一ユーザーをクエリ
#インポート
from omflow.syscom.tools import User
#1つのプロセスのオブジェクトを告知する
user_obj = User()
#クエリ条件(必要、以下3つのうちのいずれを記入)
user_id = None
username = None
nick_name = None
#検索するユーザーフィールドを記入
#記入可能なフィールド
#id, username, nick_name, email, birthday, gender, phone1, phone2, company, default_group, ad_no, extension_no
#空白の場合、すべてのフィールドをクエリする意味。
user_attr = []
#ユーザーをクエリ
result = user_obj.load(user_id, username, nick_name, user_attr)
#返事の取得(クエリフィールドに従ってデータを取得してください)
#resultデータの構成は以下のとおりです
{
'id':123,
'username':'12312',
'nick_name':'王小明',
'email':'123@gamil.com', #上記のフィールドはuser_attr変数によって異なります
'groups':[], #groupsとrolesは固定的に返事し、user_attrとは関係ありません
'roles':[], #groupsはユーザー所属のID配列を返事し、rolesはユーザーの役割のID配列を返事します
}
ユーザーEmailリストをクエリ
#インポート
from omflow.syscom.tools import User
#1つのプロセスのオブジェクトを告知する
user_obj = User()
#検索するユーザidを記入(配列)
user_id_list = []
#複数ユーザーのEmailをクエリ
result = user_obj.listEmail(user_id_list)
#result情報の形式は下記のとおりです
['aaa@gmail.com','bbb@gmail.com','ccc@gmail.com','ddd@gmail.com']
ユーザーを削除
#インポート
from omflow.syscom.tools import User
#1つのプロセスのオブジェクトを告知する
user_obj = User()
#検索するユーザアカウントを記入(配列)
username_list = []
#ユーザーを削除
result = user_obj.delete(username_list)
#resultが空文字列の場合、削除が成功したことを意味し、テキストメッセージが返事される場合はエラーメッセージの意味です。
ユーザーを部門に追加
#インポート
from omflow.syscom.tools import User
#1つのプロセスのオブジェクトを告知する
user_obj = User()
#ユーザーを選択(必要)
user_id = None
#参加する部門id配列を記入(必要)
group_id_list = []
#ユーザーを部門に追加
result = user_obj.addtoGroup(user_id, group_id_list)
#resultはboolean,Trueは成功、Falseは失敗
ユーザーを部門から外す
#インポート
from omflow.syscom.tools import User
#1つのプロセスのオブジェクトを告知する
user_obj = User()
#ユーザーを選択(必要)
user_id = None
#離れる部門id配列を記入(必要)
group_id_list = []
#ユーザーを部門から外す
result = user_obj.removefromGroup(user_id, group_id_list)
#resultはboolean,Trueは成功、Falseは失敗
組織図からユーザーを探す
※ 組織図からクエリと部門構成からクエリに分けられます
#インポート
from omflow.syscom.tools import User
#1つのプロセスのオブジェクトを告知する
user_obj = User()
#ユーザーを選択(必要)
user_id = None
#部門コード(オプション),どの部門からクエリし始めるを指定し、もし入力されていない場合、デフォルト部門からクエリし始める
group_no=None
#クエリ対象の職務名、職務コードや権限名を記入(必要,3つのいずれを記入)
position_name = None
position_no = None
responsibilitie_name = None
#組織図から検索するか、部門構成から検索するかを選択する。dept_searchはFalseの場合、組織図名を入力してください
dept_search=False
org_name=''
#組織図をクエリ
result = user_obj.getPosition(user_id, group_no, org_name, position_name, position_no, responsibilitie_name, dept_search)
#返事の取得
manager_user_id = result.get('user_id','')
manager_group_no = result.get('group_no','')
部門を作成
#インポート
from omflow.syscom.tools import Group
#1つの部門(役割)のオブジェクトを告知する
group_obj = Group()
#入力情報(必要)
group_name = 'test' #部門名
is_role = False #入力、Trueは役割,Falseは部門
#入力情報(オプション)
parent_group_id = None #親部門id、役割は記入不可
description = '' #說明フィールド
group_no = '' #部門コード
order = 0 #部門別順番、数字が小さいほどが前、整数を記入してください(マイナスも可)
#部門を作成
result = group_obj.create(parent_group_id, group_name, description, group_no, is_role, order)
#返事の取得
group_id = result['group_id'] #部門/役割id
status = result['status'] #状態True/False
message = result['message'] #エラーメッセージ、作成が成功した場合は空文字列となる
部門情報を取得
#インポート
from omflow.syscom.tools import Group
#1つの部門(役割)のオブジェクトを告知する
group_id = ''
group_no = ''
group_name = ''
#値は部門id/部門コード/部門名の3つのいずれを記入
group_obj = Group(group_id, group_no, group_name)
#部門情報を読み込む
result = group_obj.load()
#返事の取得
group_id = result.get('id','') #部門id
display_name = result.get('display_name','') #部門名
parent_group_id = result.get('parent_group_id','') #親部門id
description = result.get('description','') #說明
group_no = result.get('group_no','') #部門コード
group_user_list = result.get('group_user_list','') #該当の部門の配下にあるユーザーid
permissions = result.get('permissions','') #該当の役割の権限、部門クエリする際の返事は空文字列
order = result.get('order ','') #部門ソート
ユーザーを追加
#インポート
from omflow.syscom.tools import Group
#1つの部門(役割)のオブジェクトを告知する
group_id = ''
group_no = ''
group_name = ''
#値は部門id/部門コード/部門名の3つのいずれを記入
group_obj = Group(group_id, group_no, group_name)
#ユーザーidリストを記入
user_id_list = []
#部門にユーザーを追加する。resultはboolean,Trueは成功の意味,Falseは失敗の意味
result = group_obj.addUsers(user_id_list)
ユーザーを外す
#インポート
from omflow.syscom.tools import Group
#1つの部門(役割)のオブジェクトを告知する
group_id = ''
group_no = ''
group_name = ''
#値は部門id/部門コード/部門名の3つのいずれを記入
group_obj = Group(group_id, group_no, group_name)
#ユーザーidリストを記入
user_id_list = []
#部門からユーザーを外す。resultはboolean,Trueは成功の意味,Falseは失敗の意味
result = group_obj.removeUsers(user_id_list)
組織図からユーザーを探す
※ 組織図からクエリと部門構成からクエリに分けられます
#インポート
from omflow.syscom.tools import Group
#1つの部門(役割)のオブジェクトを告知する
group_id = ''
group_no = ''
group_name = ''
#値は部門id/部門コード/部門名の3つのいずれを記入
group_obj = Group(group_id, group_no, group_name)
#クエリ対象の職務名、職務コードや権限名を記入(必要,3つのいずれを記入)
position_name = None
position_no = None
responsibilitie_name = None
#組織図から検索するか、部門構成から検索するかを選択する。dept_searchはFalseの場合、組織図名を入力してください
org_name=''
dept_search=False
#組織図をクエリ
result = group_obj.getPosition(org_name='', position_name=None, position_no=None, responsibilitie_name=None, dept_search=False)
#返事の取得
manager_user_id = result.get('user_id','')
manager_group_no = result.get('group_no','')
部門職務権限をクエリ
#インポート
from omflow.syscom.tools import Group
#1つの部門のオブジェクトを告知する
group_id = ''
group_no = ''
group_name = ''
#値は部門id/部門コード/部門名の3つのいずれを記入
group_obj = Group(group_id, group_no, group_name)
#返事の取得
result = group_obj.loadGroupJobRole()
返事したデータの例は下記のとおりです。
[
{
"job_role_id": <データ番号>,
"position_id": <職務番号>,
"position_no": <職務コード>,
"position_name": <職務名>,
"user_id": <ユーザー番号>,
"nick_name": <ユーザー名表示>,
"is_active": <ユーザーがアクティブかどうか>,
"responsibility": <権限>,
"data_index": <ソート>
},........
]
部門職務権限を更新
#インポート
from omflow.syscom.tools import Group
#1つの部門のオブジェクトを告知する
group_id = ''
group_no = ''
group_name = ''
#値は部門id/部門コード/部門名の3つのいずれを記入
group_obj = Group(group_id, group_no, group_name)
job_role_list = [
{
'job_role_id': <データ番号>, #古いデータを更新する際に記入
'position_no': <職務コード>,
'user_id': <ユーザー番号>,
'responsibility': <権限>,
'data_index': <ソート>
},........
]
result = group_obj.updateGroupJobRole(job_role_list)
#返事の取得
status = result['status'] #状態success/update error
message = result['message'] #エラーメッセージ、作成が成功した場合は空文字列となる
組織図情報を取得
#インポート
from omflow.syscom.tools import OrgChart
#1つの部門のオブジェクトを告知する
org_name = ''
org_config_id = ''
#値は組織図名/組織図番号のいずれを記入
org_obj = OrgChart(org_name, org_config_id)
#組織図情報を読み込む
result = org_obj.load()
返事したデータの例は下記のとおりです。
{
"org_name": <組織図名>,
"value": [{
"org_id": <組織ンポーネント番号>,
"group_no": <組織コンポーネントコード>,
"group_name": <組織コンポーネント名>,
"parent_group_no": <親組織コンポーネントコード>,
"order": <組織コンポーネントソート>,
"host_user": <委任者>, #ユーザ番号
"host": <委託管理されるか>, #True/False
"is_host": <委託管理組織に所属するか>, #True/False
"job_role": [{
"job_role_id": <データ番号>,
"position_id": <職務番号>,
"position_no": <職務コード>,
"position_name": <職務名>,
"user_id": <ユーザー番号>,
"nick_name": <ユーザー名表示>,
"is_active": <ユーザーがアクティブかどうか>, #True/False
"responsibility": <権限>,
"data_index": <ソート>
}
],
"sub_item": <委託管理組織>,
"parent_group_name": <親組織コンポーネント名>
},........
],
"org_approver": {
"group": <管理ユーザの部門番号>,
"user": <管理ユーザ番号>
},
"is_search_dept": <組織図から見つからない時、部門構成にクエリ>, #True/False
"is_sub": <委託管理される組織図かどうか>, #True/False
"parent_chart_name": <メイン組織図名>,
"uid": <uid>,
"pending_status": <委託管理される組織図は承認状態かどうか>, #True/False
"host_user": <委託管理者>,
"org_config_id": <組織図番号>
}
組織圖の更新/作成
#インポート
from omflow.syscom.tools import OrgChart
#1つの組織図のオブジェクトを告知する
org_obj = OrgChart()
org_chart_dict = {
'org_name': <組織図名>,
'value': [{
'org_id': <組織ンポーネント番号>, #古いデータを更新する際に記入
'group_no': <組織コンポーネントコード>,
'group_name': <組織コンポーネント名>,
'parent_group_no': <親組織コンポーネントコード>,
'order': <組織コンポーネントソート>,
'host_user': <委任者>, #ユーザ番号
'host': <委託管理されるか>, #True/False
'is_host': <委託管理組織に所属するか>, #True/False
'job_role': [{
'job_role_id': <データ番号>, #古いデータを更新する際に記入
'position_no': <職務コード>,
'user_id': <ユーザー番号>,
'responsibility': <権限>,
'data_index': <ソート>
}
]
},........
],
'org_approver': {
'group': <管理ユーザの部門番号>,
'user': <管理ユーザ番号>
},
'is_search_dept': <組織図から見つからない時、部門構成にクエリ>, #True/False
'is_sub': <委託管理される組織図かどうか>, #True/False
'uid': <uid>,
'org_config_id': <組織図番号> #古いデータを更新する際に記入
}
#組織圖情報の更新/作成
result = org_obj.update(org_chart_dict)
#返事の取得
status = result['status'] #状態success/update error
message = result['message'] #エラーメッセージ、実行が成功した場合は空文字列となる
op_result = result['result'] #実行結果、実行が成功した場合は空文字列となる
組織図を削除
#インポート
from omflow.syscom.tools import OrgChart
#1つの組織図のオブジェクトを告知する
org_obj = OrgChart()
org_config_id_list = [<組織図番号>,........]
#組織図を削除
result = org_obj.delete(org_config_id_list )
#返事の取得
status = result['status'] #状態success/delete error
message = result['message'] #エラーメッセージ、実行が成功した場合は空文字列となる
op_result = result['result'] #実行結果、実行が成功した場合は空文字列となる
※ 委託管理される組織図を削除するには、上記方法を使わないで、メイン組織図を更新し、委託管理を解除してください。
最終更新