0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Oracle Cloud] Groovyを使用した外部Webサービス呼出

Posted at

アプリケーション・コンポーザ(Application Composer)を使用し、Fusionから外部Webサービスを呼出すことができます。
呼出すコードはGroovy Scriptで実装できます。SOAP APIとREST APIに対応しています。

※アプリケーション・コンポーザ(Application Composer)は何かは別記事で記載予定。

前提条件

  • OIC(Oracle Integration Cloud)にREST APIを構築し、それを呼出対象とします。
  • REST APIの認証方式はベーシック認証
  • GETメソッドを使用します
  • URLパラメータが2つある想定
  • Content-Typeはなし

Fusionにカスタムオブジェクトを作成し、カスタム画面でパラメータを選んで、REST APIを呼出します。

REST APIの呼出手順

サンドボックスをアクティブ化し、アプリケーション・コンポーザを開きます。
下記手順はアプリケーション・コンポーザでの操作になります。

1. カスタム・オブジェクトを作成します。

オブジェクト-カスタム・オブジェクトの「作成」ボタンを押下し、必要な情報を入力します。

2. Webサービスを登録します。

共通設定-Webサービスを開きます。「作成」ボタンを押下します。

image.png

RESTを選びます。

image.png

必要な情報を登録します:

  • 名前:Webサービスに名前を付けます。Groovyでこの名前を使用します。
  • URL:REST APIのURL。{}のように変数を入れます。
  • 認証スキーム:今回はベーシック認証を使用します。
  • GETメソッドを選択します。
  • リクエスト・ペイロード、レスポンス・ペイロードは指定なしにします。

ベーシック認証に使用する資格証明キーがないと、GroovyでAPI呼出時に認証エラーになってしまうので、登録する必要があります。

image.png

+ボタンで資格証明キー情報を作成します。

  • CSFキー:Create a CSF Key
  • ユーザ名:ベーシック認証ユーザ名
  • パスワード:ベーシック認証パスワード

3. URLパラメータ用フィールドを作成します。

作成したカスタムオブジェクトの「フィールド」画面を開きます。必要なフィールドを作成します。

image.png

4. ページにフィールドを追加します。

作成したカスタムオブジェクトの「ページ」画面を開きます。対象ページにフィールドを追加します。

image.png

5. Groovy Scriptを実装します。

作成したカスタムオブジェクトの「サーバー・スクリプト」画面を開きます。「オブジェクト関数」タブを選び、「追加」ボタンを押下し関数を作成します。

image.png

関数名はあとで画面上のボタンと紐付けて関数を使用します。
今回のGroovyコード:

// Query for REST API
println("Enter REST API Script.")
def myParameter01 = Parameter01_c //登録したフィールドの物理名
def myParameter02 = Parameter02_c //登録したフィールドの物理名

def urlparam = "urlparam?name1=" + myParameter01 + "&value1=" + myParameter02

println("urlparam=" + urlparam)

def conn = adf.webServices.REST_API //REST_APIは登録したWebサービス名
try {
  def httpHeaders=['Content-Type':'']
  conn.requestHTTPHeaders=httpHeaders
  def WSResponse = conn.GET(urlparam)

  if(!WSResponse)
    println("Did not receive a response from REST API.")
  else {
    println("Did receive a response from REST API.")
  }
} catch(Exception e) {
  println("Headers:"+conn.responseHTTPHeaders)
  println("Status:"+conn.statusCode)
  println("Error:"+e)
}

注意しておきたいのは、httpヘッダのContent-Typeは、アプリケーション・コンポーザがデフォルトで"application/json"にしているようです。REST API側の設定に合わせないと、415 Unsupported Media Typeエラーが出ます。

また、printlnで出力したログは、共通設定-「ランタイム・メッセージ」画面で確認可能です。

image.png

※ロギングの有効化が選択されていることが前提条件

6. ボタンとGroovy Scriptを紐づけます。

作成したカスタムオブジェクトの「処理およびリンク」画面を開きます。「作成」ボタンを押下し、必要な情報を入力します。

image.png

7. ページにボタンを追加します。

パラメータフィールドを設定したページに、作成したボタンを追加します。

image.png

8. セキュリティを設定します。

作成したカスタムオブジェクトの「セキュリティ」画面を開きます。

image.png

※ カスタムオブジェクトをアクセスするには、Custom Objects Administration (ORA_CRM_EXTN_ROLE)のロールが必要になります。

上記で一通り手順が終了です。作成したページをホーム画面またはナビゲータにリンクを追加したい場合は、Home Page and Navigationを参照してください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?