Hi
I try to create object with dm_docset type. Creation has not error, but document is absent in target folder. I know that DFC in this case works right, and document is stored into target folder.
What did I do wrong?
ObjectServiceReference.ObjectIdentity oi = new ObjectServiceReference.ObjectIdentity();oi.repositoryName = sDocbase;
ObjectServiceReference.DataObject o = new ObjectServiceReference.DataObject();o.Identity = oi;
o.type = sType;
ObjectServiceReference.PropertySet pset = new ObjectServiceReference.PropertySet();ObjectServiceReference.
StringProperty pName = new ObjectServiceReference.StringProperty();pName.name =
"object_name";pName.Value = sName;
ObjectServiceReference.StringProperty pFormat = new ObjectServiceReference.StringProperty();pFormat.name =
"a_content_type";pFormat.Value = sFormat;
ObjectServiceReference.Property[] ps = { pName, pFormat };pset.Properties = ps;
o.Properties = pset;
ObjectServiceReference.DataHandlerContent dhc = new ObjectServiceReference.DataHandlerContent();dhc.format = sFormat;
dhc.Value =File.ReadAllBytes(sDocPath);o.Contents =
new ObjectServiceReference.Content[1];o.Contents[0] = dhc;
// link to folder
ObjectPath objectPath = new ObjectPath();objectPath.path = sPath;
ObjectServiceReference.ObjectIdentity folderIdentity = new ObjectServiceReference.ObjectIdentity();folderIdentity.valueType = ObjectServiceReference.
ObjectIdentityType.OBJECT_PATH;folderIdentity.valueTypeSpecified =
true;folderIdentity.Item = objectPath;
folderIdentity.repositoryName = sDocbase;
ReferenceRelationship folderRelationship = new ReferenceRelationship();folderRelationship.name = RELATIONSHIP_FOLDER;
folderRelationship.Target = folderIdentity;
folderRelationship.targetRole = ROLE_PARENT;
ObjectServiceReference.Relationship[] rss = { folderRelationship };o.Relationships = rss;
BasicHttpBinding bhb = new BasicHttpBinding();bhb.Name =
"ObjectServicePortBinding";
EndpointAddress endpointAddress = new EndpointAddress(address + "/core/ObjectService");
ObjectServicePortClient objectService = new ObjectServicePortClient(bhb, endpointAddress);
using (OperationContextScope scope = new OperationContextScope(new OperationContext(objectService.InnerChannel))){
// Use the ServiceContext
ServiceContextHeader scx = new ServiceContextHeader();
RepositoryIdentity repoId = new RepositoryIdentity();repoId.repositoryName = sDocbase;
repoId.userName = sUserName;
repoId.password = sPassword;
repoId.domain = sDomain;
scx.AddRepositoryIdentity(repoId);
OperationContext.Current.OutgoingMessageHeaders.Add(scx);
ObjectServiceReference.DataPackage dp = new ObjectServiceReference.DataPackage();dp.DataObjects =new ObjectServiceReference.DataObject[1];dp.DataObjects[0] = o;
// dataObject;
ObjectServiceReference.DataPackage createdDataPackage;
try
{ createdDataPackage = objectService.create(dp,null);
}catch (Exception ex){
throw new Exception("Document creation fails: " + ex.Message);}
} // using