多くの組織では、ファイアウォールを使用してリモートデータベースを保護しています。これらのファイアウォールを経由してリモートデータベースにアクセスする方法をお探しの場合は、Bridgeが役立ちます。
プライベートネットワーク内のMySQLデータベースにアクセスするためにBridgeを使用する、実際のビジネスケースの解決方法を見てみましょう。
Swerio Corpは、安全なプライベートネットワーク内のMySQLデータベースですべてのデータを管理しています。同社は、さまざまなワークフローの自動化にQntrlを使用しています。そのうちの1つである休暇承認ワークフローでは、従業員の当年度の休暇残日数を取得し、Qntrlに表示することを検討しています。休暇残日数が十分にある場合、カードは承認のため従業員のマネージャーに送信されます。一方、休暇残日数がゼロ、または申請された休暇日数より少ない場合、カードは自動的に却下される必要があります。
また、Qntrlで休暇が承認されたら、休暇残日数もクライアントのMySQLデータベースで更新し、全体でデータの一貫性を維持する必要があります。
このビジネスケースに効果的に対応するには、休暇申請フォームに必要な項目を含むボードを作成し、Bridgeとカスタム関数の機能を組み合わせて利用します。
解決策を実装するには、以下の手順に従います。
Bridgeは、Qntrlインスタンスと、ファイアウォール内にあるクライアントのアプリケーションとの間の通信を可能にするために、お客さまのローカルネットワーク上で実行される、インストール可能なJavaアプリケーションです。
Bridgeを作成し、WindowsまたはLinuxマシンからBridgeのエージェントを設定します。Bridgeを実行する詳しい手順については、ヘルプドキュメントを参照してください。
メッセージ1:従業員情報の取得
接続を作成します。接続を作成する際は、次のスコープを使用します。
Orchestly.job.ALL
Orchestly.message.CREATE
Orchestly.message.UPDATE
//Fetching selected employee details from local database
params = Map();data = '{'task_name': 'db_task','credential': {'name': 'mysql'},'task_details': {'database': 'DEMO','db_query': 'SELECT * FROM Employees where EMP_ID =' + ''' + emp_id + ''' + '','port': 3306,'query_timeout': 10000,'host': 'localhost','sql_type': 1,'connection_timeout': 10000,'allow_multiple_columns': true}}';params.put('data',data);resp = invokeurl[url :'https://core.qntrl.in/blueprint/api/manikin001/message/6124000000050437'type :POSTparameters:paramsconnection:'<CONNECTION NAME>'];info resp;response = resp.get('response_to').getJSON('results');//Updating employee details in the current jobif(response != null){d = response.get(0);job_params = Map();name = d.get(1);job_params.put('customfield_shorttext1',name);メール = d.get(2);job_params.put('customfield_shorttext2',メール);remaining_leaves = toNumber(d.get(3));job_params.put('customfield_integer1',remaining_leaves);r = invokeurl[url :' https://core.qntrl.in/blueprint/api/manikin001/job/' + job_idtype :POSTparameters:job_paramsconnection:'<CONNECTION NAME>'];}
remaining_days = remaining_leaves.toLong();params = Map();data = '{'task_name': 'db_dml_task','credential': {'name': 'mysql'},'task_details': {'database': 'DEMO','db_query': {'update':['UPDATE Employees set REMAINING_LEAVES = ' + ''' + remaining_days + ''' + ' where EMP_ID =' + ''' + emp_id + ''' + '']},'port': 3306,'query_timeout': 10000,'host': 'localhost','sql_type': 1,'connection_timeout': 10000}}';params.put('data',data);resp = invokeurl[url :'https://core.qntrl.in/blueprint/api/manikin001/message/6124000000050557'type :POSTparameters:paramsconnection:'<CONNECTION NAME>'];info resp;