アプリケーションプログラミングインターフェイスガイド> Webサービスオペレーション> オペレーションリファレンス> copyResource
 
copyResource
指定したリソースを既存のフォルダーに複製します。この手順により、リソースを新しい場所にコピーして名前を変更できます。リソースの新しいコピーでは、所有者とセキュリティの特権は同じままです。
注:このWebサービスオペレーションは、リソースツリーの /lib/resourceにある同じ名前のプロシージャとは異なります。
ロケーション
/services/webservices/system/admin/resource/operations/
リクエストエレメント
path:TDVソースパス。コピー用のリソース名とも呼ばれます。
type:コピーするソースリソースのタイプ。有効なTDVタイプは、DATA_SOURCE、DEFINITION_SET、LINK、PROCEDURE、TABLE、TREE、およびTRIGGERです。
targetContainerPath:リソースをコピーするターゲットコンテナのパス。
newName:コピーされたリソースを呼び出すための新しい名前。
copyMode:newPathで指定されたコンテナに同じ名前とタイプのリソースが存在する場合の動作を制御します。このエレメントは、次のいずれかになります。
ALTER_NAME_IF_EXISTS:同じ名前とタイプのソースリソースのリソースがターゲットコンテナにすでに存在する場合は、新しい名前を自動的に生成して競合を回避します。名前は、指定された名前の末尾に番号を追加することによって生成されます。
FAIL_IF_EXISTS:同じ名前とタイプのリソースがターゲットコンテナにすでに存在する場合は失敗します。これが発生した場合、リソースはコピーされません。
OVERWRITE_MERGE_IF_EXISTS:ソースリソースと同じ名前とタイプのリソースがターゲットコンテナにすでに存在する場合は、ターゲットコンテナのリソースを上書きします。ソースリソースがコンテナの場合、ソースコンテナの内容をターゲット内の対応するリソースとマージします。ソースコンテナ内のすべてのリソースは、ターゲット内の同じ名前のリソースを上書きしますが、異なる名前のターゲット内の子リソースは上書きされず、変更されません。
OVERWRITE_REPLACE_IF_EXISTS:同じ名前とタイプのソースリソースのリソースがターゲットコンテナにすでに存在する場合は、ターゲットコンテナのリソースを上書きします。ソースリソースがコンテナの場合は、ターゲットコンテナ内のコンテナをソースコンテナに置き換えます。これは、ソースをコピーする前にターゲット内のコンテナを削除することと同じです。
応答エレメント
該当なし
エラー解析
DuplicateName:ターゲットコンテナ内のリソースがソースと同じタイプ、newNameと同じ名前で存在し、コピーモードがFAIL_IF_EXISTSである場合。
IllegalArgument:指定されたパスまたはタイプのいずれかが不正な形式である場合、またはcopyModeが有効な値の1つではない場合。
IllegalState:ソースリソースのコピーが許可されていない場合。 /services/database/system/services/webservices/system、または物理データソース内のリソースはコピーできません。
NotAllowed:ソースリソースがターゲットコンテナ内に存在することを許可されていない場合。リソースを物理データソースにコピーすることはできません。 LINKリソースは、RELATIONAL_DATA_SOURCE、SCHEMA、または/servicesの下のPORTにのみコピーできます。非LINKリソースは、/servicesの下のどの場所にもコピーできません。
NotFound:ソースリソースまたは新しいパスの一部が存在しない場合。
セキュリティ:ユーザーがソースパス内のすべてのアイテムに対する読み取りアクセス権を持っていない場合。
セキュリティ:ユーザーが最後のアイテム以外のtargetContainerPath内のアイテムに対するREADアクセス権を持っていない場合。
セキュリティ:ユーザーがtargetContainerPathの最後のアイテムへの書き込みアクセス権を持っていない場合。
セキュリティ:ユーザーが、上書きモードの1つで上書きされるリソースへの書き込みアクセス権を持っていない場合。
セキュリティ:ユーザーがACCESS_TOOLS権限を持っていない場合。