7
2

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 5 years have passed since last update.

OutsystemsでC#を書いてみた

Last updated at Posted at 2019-09-29

#やったこと

  • 簡単な2項の足し算をするコードをC#で書いて、それをOutSystemsのロジック内で呼び出して使ってみた
  • Structure型のRecordをC#に渡してみることにも挑戦してみた

#想定読者
初歩的なOutsystemsの操作は何となくわかるが、C#でExtensionを書いたことはない・どうやって書くか知りたい人

#開発環境

  • Outsystems11(ServiceStudio, IntegrationStudio)
  • Vidual Studio

#筆者のスキル
C#の詳しいことは全然わからん outsystemsも初心者

#手順

###C#のコードを書く(Extension)

  • 任意のApplication内に、Extentsionを作成する

image.png

  • Create Moduleボタンを押すと、勝手にIntegrationStudioが開いて、EnvironmentのPasswordを聞かれるのですなおに入力する
  • 以下のような画面が開くので必要ならDescriptionを書く

image.png

  • 左のツリーのActionsフォルダを右クリックして、Add Actionをクリック
  • 以下の図のように、Actionの引数や戻り値を設定できる画面になるので、それぞれ入力する
  • 今回は、2つの項目の引数を受け取って計算結果を返却するアクションを作成するので、以下のようなParametersを設定した

image.png

  • 左上のFileメニューを開いて、Edit Sourcecode .NETを選択する

image.png

  • 勝手にVisual Studioが開く
  • 右側のソリューションエクスプローラーでCaluculation.csを開くと先ほど入力した引数や戻り値などは勝手に補完してくれていることがわかる

image.png

// TODO: Write implementation for action
というコメントの下に今回やりたかった足し算のコードを入力する
ssResult = ssFirstTerm + ssSecondTerm;

  • コードが入力し終わったら、ファイルを保存してVisual Studioを閉じる
  • IntegrationStudioに戻って、1Click Publishボタンを押す(下図)
無題.png

image.png

  • Publishが終わってからServiceStudioに戻ると、ちゃんとExtensionが作成されてIntegrationStudioで作ったモジュールが反映されていることが確認できる

image.png

###ServiceStudio側でExtensionを呼び出す

  • 下図のような画面を作って、FirstTermとSecondTermというLocalVariableを用意して、Inputの値が入るように設定する

  • Additionボタンを押すとC#で書いたアクションを呼び出すためのScreenAction(Addition)を呼び出すように設定する
    image.png

  • C#で書いたアクションのDependencyを貼る

image.png

  • 呼び出して使ってみる

image.png

  • Publishして計算させてみるとこんな感じで計算結果が正しく表示された

image.png

#OutsystemsのStructureをC#に渡したい場合はどうするの?

  • IntegrationStudioでStructureを定義するとその型でレコードを受け取れるようになる

  • こんな感じで定義できて
    image.png

  • VisualStudioで見るとStructures.csに勝手にコードを書いてくれてる すごーい!
    image.png

  • EditStructure.csで、Nameの値がfooかどうか見てあげる(C#わかんない)
    書いたのはこれだけ

EditStructure.cs
public void MssGetStructureAndValidateValue(RCStructureRecord ssStructure, out bool ssResult) {
  ssResult = false;
  String ValueForCompare = "foo";
  if (ssStructure.ssSTStructure.ssName.Equals(ValueForCompare))
  {
    ssResult = true;
  }
} // MssGetStructureAndValidateValue
  • ServiceStudioで組み込む
    image.png

  • Nameにfooが入力されたらOK それ以外ならNGが表示させることができたよ!
    image.png

7
2
4

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
7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?