19.11.09

UCM WebService CheckinUniversal and Setting Target Folder

Oracle Universal Content Management (UCM) 10g has built-in SOAP interfaces to integrate with surrounding applications and tools.

For check-in purposes there is “CheckInUniversal” SOAP operation where you can check-in new documents into UCM. By default you can set all the main metadata but not folder information.

There is a way to set the target folder, if you needed to show the document in “traditional” file folder structure. For some reason the information how to do this seems to be a bit hard to find, that is why I publish this for wider audience (search engines should find).

There are two extra CustomDocMetaData properties you could use:

  • xCollectionName

  • xCollectionID

You specify one of the above properties. The end result is something like this:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:chec="http://www.stellent.com/CheckIn/">
<soapenv:Header/>
<soapenv:Body>
<chec:CheckInUniversal>
<chec:dDocName>OracleLogoSmall</chec:dDocName>
<chec:dDocTitle>Oracle logo</chec:dDocTitle>
<chec:dDocType>DOCUMENT</chec:dDocType>
<chec:dDocAuthor>weblogic</chec:dDocAuthor>
<chec:dSecurityGroup>WebCenter</chec:dSecurityGroup>
<chec:dDocAccount></chec:dDocAccount>
<chec:CustomDocMetaData>
<chec:property>
<chec:name>xComments</chec:name>
<chec:value>This is Oracle small logo</chec:value>
</chec:property>
<!--
<chec:property>
<chec:name>xCollectionID</chec:name>
<chec:value>31</chec:value>
</chec:property>
-->
<chec:property>
<chec:name>xCollectionName</chec:name>
<chec:value>/Contribution Folders/Logos/</chec:value>
</chec:property>
</chec:CustomDocMetaData>
<chec:primaryFile>
<chec:fileName>oracle_logo_small.gif</chec:fileName>
<chec:fileContent>R0lGODlhhQASAPcAAP////8AAP/o6P/29v/a2v8vL/+Tk/+Uk/8BAP/6+v/+/v8wL/8yMv8zM//3
9//8/P8sLP+4uP9vb//X1//p6f8zMv/09P/9/f9eXv/7+/8CAv/f3/8BAf/19f8FBP+ysv/4+P/y
8v81Nf+Qj/8wMP/Ly/+Pj/8EBP9ubv8XF//V1f+UlP8VFP+0tP8HB/8qKv+Bgf/n5/9iYv8WFf/P
z/82Nv82Nf8iIv/i4v8fH/+np//W1v+5uf9fXv+xsf8WFv+mpv/b2/8TE/8aGv/v7/+urv9HR//Y
2P/AwP84OP/Z2f+vr/9zcv/l5f9AQP8nJ/8lJP99ff9cXP8dHP87Ov+2tv+/vv+zs//Gxv9ZWP8m
Jv+env+Vlf8SEv9JSf88PP9oaP/d3f9VVf/r6/9EQ//Jyf+6uv+oqP+trf80M//Nzf/c3P9dXf/u
7v+qqv/T0/8pKf/s7P/x8f8REP+Xl//R0f8NDf/e3v/MzP+3t/93d/9xcf8/P//m5v9LS/8hIf94
ef+IiP9NTP9OTv+Ghv+kpP8FBf+Liv88O//t7f9kZP80NP/Dw/+iov8gIP8ICP8KCv8VFf+cnP9M
TP/k5P9lZf+wsP8xMf8uLv8DAv/z8/9rav/ExP8eHv/S0v/Kyv/q6v8PDv+rq/8oKP9TUv8REf+K
if8MC/9hYf8eHf/w8P8gH/+npv+Skv+gn/8GBf/Dwv8OD/9eXf+0s/8QD/8tLP/9/v+Wlf+YmP/z
9P9OTP+Eg//a2/91dP8YF/96ev/u7f/Z2v8yMf8IB/8SEf8rK//x8v/y8f/29f+mpf/19v9jY/+T
kv96ef8UE//X1v8qKf+5uP8PEP/5+f84N/8tLf8QEP+MjP+Ojf8CAf+pqf/w8f+Yl/+ys/+Pjv8i
If8DA/8cG/8fHv81NP+Ojv8xMP89Pf8KCf/f4P9CQf9CQv8nJv9paf/Ew//Mzf8GBv8HBv+goP9I
Sf/r6v9NTf9JSP8ODv9oZ/9fX/8PD/95ev+Rkf9QUP9SUf+bnP/CwiH5BAAAAAAALAAAAACFABIA
AAj/AAEIFLimygoDBw4YQIhQoQFRKgYO3LDQYUKFGA3c0oFEokeJahZi+UhSE5ItDBNWdLgCxJuF
bh6QnDkQz5KGGDMeuEbgQpF9EWQKlCOBwakASJMqTfpCzxqJbpZKVfpDkTGaAILcQBquDNZpzLxE
mrqUD4hASG8MwPoxgpQ/J8gmdVEHz7oAOWgININIrlw4Swb6CIDA71InwGZ2UES48CUBM5v0M5x0
CgUA3pCKcMBWYqMflJGiAdDiXioqagDc6aK0AAMGDSo0eD07zahXSWPNEvgBqR1MaV5XYCC7wWzQ
SAFlIHnG2lIYJJt4UVqKGuzisSuUKyTQBFIbnDsD/+BiJ+mJ4MaJy2YwSk8CAM+EFXiipkMSpBqk
tLAwoL///x3IIYYGSCURBgC9BVAMDf81OMAOIiA1hQUfgfICUo4IgVQnn3h0gSlJ+YJGCA76h8xA
3gVQQ3hsBTEHUo/s0UaJ/XVwgUAKTBBICQ8UgR8qFIoHABOEBRAFaUhBcARblhAYwAYfSVAkOZYc
FUA/QQr0hjgSuiMkACN8xyJWm/jmypceTYKUFgd+CYITSOkSQhVJTsCWFfAgxYlHJSSlTh8AyJAU
HRIVgpQLjKAZZgCbdbZBKEiB8UAClFZqaaUx3CgRLYTtoQCaAACB1DlrRINULTuwRWQAw2QJQAYX
Bv8QSYcAUAJJYRDgIJADyxQYApopgtfZYIXxAQYGyGLQA7Js9NCDLD2IwcNyEqUQQDb+gAoAFk6q
wEOSYXhyRQQ8kBtBBGb4IMM7hZExZhROViLRFklVAgIAidSDVBSaCrloo2zlEZpSOQDqkbUcEAoq
EhwUpkIESW5AwyJdzMCCxRcTk1QmsHwqUDsvBgBFDBJd4AdShnwAABFqBgDGvV8GO+ZMAiNQWGja
kGRtAHtoC2IAQ+AgcABKPnDHVmQZIopEyggyaiMAPCC11FiwFgAcFiigz5qXfbnoip1BjFQ6gEgg
AQpnn422BOwQkghJgyAFRQlobrAKUk4QQSfRdgL/QMEXSNnsQg7f4KOER7gkNUgv41DxxReImEOF
hkgxAUA3SXGjqGYzkxQC0lJoAoACpJdeer8f+YiUF1CKRwEbhHHABQBX1DmQHGzEFYAjQJBUhxZI
OeNJMoZ5YAY64SCVAh5eI0WNkGghtUwH2grkNFIVaENDEAR07333QaigjRFFktIGgrYPpEAzSXFg
AOoJ0JPUmYsF4IEHJ9zvgQtJFXDMChxASihg8I87fO+ASpjAAFqBlEu84YAQ7F4Z4JAUDLSAFxH0
XgI/ggMyKOUPJChAARYwQhIWgATQCFwAhLAk9PHNIxk4RCaSgoJfCQQNRZKHLQQyBknoAAhA0IEO
6FjhBikEEAHQKVNS5rCIBZhQhCJcQDWMIAA6IMUemCjhE58oQh+UwFqF4QAJuDjCEj5hBSQJBj8G
phQyjIQ36fMIF3KQFC9cZgc1QMoPvMKWbZAAKSxgRC5+wUb3YIONQPuVFSIUmk607iNEiIcYdGcY
I2wBFBJZAlKekCqSqGAGTKFEFpKyC4+x5QrgGFscHkADCeTDMFCgUASkwUa6CaQJJvijXzRgBbYM
gAICCKYwhylMVwkEBMGMA7VIEodgxgAHGZhHDIL5HiEBUwAUoFYCxkDMbp4vatzspjgh4xFVjFOY
XfNIQAAAOw==
</chec:fileContent>
</chec:primaryFile>
</chec:CheckInUniversal>
</soapenv:Body>
</soapenv:Envelope>


Word of Warning





I recognized some in some situations inconsitent behaviour (somebody might call it bug ;). Once you create a new virtual folder and try to check in documents into this folder using SOAP interface and xCollectionName, for some reason the documents end up not having the folder name. I recognized that once I called the check-in service first time with xCollectionID and then continued with xCollectionName, everything seemed to work ok.




This seems to have something to do with UCM interface folder data structures not being populated properly when a new folder is created. Bouncing the UCM server after creating the folder didn’t have any effect so the recommendation is to use xCollectionID at least once to enable using xCollectionName later.