ExternalFileServices という名前の再利用可能パーツを作成します。
この再利用可能パーツを変更して、以前定義した ExternalServiceBase を継承するようにします。
SetupUrlBuilder メソッドを再定義して、ファイル・サービスのパス・コンポーネントを追加します。
ファイルのコピー・サービスの URL を思い出してください。
http://localhost:8080/lansa-tutorial/files/copy
ファイル・サービスのパスに対するベース URL には追加のパス・コンポーネント'files' があります。ですから、ExternalFileServices の SetupUrlBuilder メソッドでは、URL に 'files' を付ける必要があります。
Mthroutine Name(SetupUrlBuilder) Options(*REDEFINE) * 最初に祖先の SetupUrlBuilder を起動 #COM_ANCESTOR.SetupUrlBuilder UrlBuilder(#UrlBuilder) * 次にこのクラスを実装 #UrlBuilder.AddPathComponent( 'files' )Endroutine
次に RDMLX 再利用可能パーツに copy メソッドを実装してみましょう。
Mthroutine Name(Copy) * パラメータ Define_Map For(*INPUT) Class(#PRIM_DC.UnicodeString) Name(#SourcePath) Define_Map For(*INPUT) Class(#PRIM_DC.UnicodeString) Name(#TargetPath) * 変数 Define_Com Class(#XPRIM_UriBuilder) Name(#Url) Define_Com Class(#XPRIM_HttpRequest) Name(#Request) * URL のベース・プロパティ設定 #COM_SELF.SetupUrlBuilder Urlbuilder(#Url) * 'copy' パス・コンポーネント追加 #Url.AddPathComponent Pathcomponent('copy') * フォームのパラメータ追加 #Request.Content.AddUrlEncodedFormValue Name('sourcePath') Value(#SourcePath) #Request.Content.AddUrlEncodedFormValue Name('targetPath') Value(#TargetPath) * HTTP 要求の実行 #Request.DoPost Url(#Url) Endroutine

