Creates a copy of a model with all its contents within a remote EDMdatabase.
This function is only applicable to data models. The executing EDMuser must have read access to the source model. The source model will not be affected by this operation and may be open or closed. The source and target models will be two independent populations of the same underlying Express Schema.
Related functions: edmiRemoteCopyModelBN.
Header:
#include "sdai.h"
Prototype:
EdmiError edmiRemoteCopyModel(SdaiServerContext serverContextId,
SdaiModel modelId,
SdaiRepository targetModelRepositoryId,
SdaiString remoteTargetModelName,
SdaiModel *newModelId,
SdaiInvocationId *edmiInvocationId);
Arguments:
serverContextId |
Context identification, from edmiDefineServerContext |
modelId |
The modelId that uniquely identifies the source model in the EDMdatabase |
targetModelRepositoryId |
The repositoryId that uniquely identifies the repository in which to create a copy of the model. |
remoteTargetModelName |
The name to assign to the new copy of the model. |
newModelId |
A variable that will receive the modelId that uniquely identifies the new copy of the model in the EDMdatabase |
edmiInvocationId |
Currently not used. |
Returns:
A completion code of datatype EdmiError is the returned function value. The completion code has the following values:
Completion code = 0 : Operation successfully performed.
Completion code != 0: Error in operation. Completion code is an _EDMinterface_ error code. Use edmiGetErrorText to get the error text corresponding to the error code.
Example:
EdmiError rstat;
SdaiServerContext myContext;
SdaiModel modId, copyModId;
SdaiRepository repositoryId;
/* Create Server Context */
rstat = edmiDefineServerContext("MyContext",
"Johnny", "Supervisor", "cf37ftr",
"TCP", "9090", "MyServerHost",
NULL, NULL, NULL, NULL, NULL, &myContext);
/* Get the modelId of MyModel */
rstat = edmiRemoteGetModelBN(myContext, "DataRepository",
"MyModel", &modId, NULL);
/* Create a repository for
containing my copy of MyModel */
rstat = edmiRemoteCreateRepository(myContext,
"MyCopyRepository", NULL);
/* Get the repositoryId */
rstat = edmiRemoteGetRepository(myContext,
"MyCopyRepository", &repositoryId, NULL);
/* Copy MyModel to MyCopy in MyCopyRepository */
rstat = edmiRemoteCopyModel(myContext, modId,
repositoryId, "MyCopy", ©ModId, NULL);
. . .