In the last few days, i had to load a content that, by its requirements, needs to attach files to the content.
My first alternative would be Batch Loading, however for the bacth loder file it was not possible because it does not actually support the rendition service.
With the next option, i tried to use the IdcCommand, but still had many problems, such as errors below:
sample hda file:
[oracle @ hostname bin] $ cat idctst.txt
@Properties LocalData
IdcService = EDIT_RENDITIONS
dID = 37020
renditionKeys = addRendition0
addRendition0.name = test543
addRendition0.action = edit
addRendition0.file = test.txt
addRendition0.file: path = / u01 / oracle / domains / content_domain / ucm / cs / vault / ~ temp / test.txt
@end
<< EOD >>
Executing:
[oracle @ hostname bin] $ ./IdcCommand -f idctst.txt -u sysadmin -l log.log -c server
Error:
Java HotSpot (TM) 64-Bit Server VM warning: Using the ParNew young collector with the Serial old collector is deprecated and will likely be removed in a future release
> system / 6 09.22 12: 22: 44.847 main Configuring tracing verbose: false; sections: system
> system / 6 09.22 12: 22: 44.848 main Configuring tracing verbose: false; Services:
09-29-2017: Error executing the EDIT_RENDITIONS service. Unable to process post data while adding or deleting attachments or renditions attached to content item 'OWCCDEV12C035232'. Invalid path to attachment.
My appeal was to use RIDC and needing a quick implementation, nothing better than using Jython.
Below, I share a simplified and functional version of the code:
cat checkin_attachments.py
from oracle.stellent.ridc import IdcClientManager
from oracle.stellent.ridc import IdcContext
from oracle.stellent.ridc.model import TransferFile
from java.io import File
manager = IdcClientManager ()
client = manager.createClient ("idc://127.0.0.1:4444")
userContext = IdcContext ("weblogic")
# client = manager.createClient ("http://127.0.0.1:16200/cs/idcplg")
# userContext = IdcContext ("<user>", "<password>")
# Checkin a new file
binder = client.createBinder ()
binder.putLocal("IdcService", "CHECKIN_NEW_WITH_RENDITIONS")
binder.putLocal("dDocTitle", "Test File")
binder.putLocal("dDocType", "Document")
binder.putLocal("dSecurityGroup", "Public")
binder.putLocal("dDocAccount", "")
binder.addFile("primaryFile", TransferFile(File("content1.txt")))
binder.putLocal("fParentGUID", "D53FEDE1CA293189BB21BBC2C2BC3089")
#Add Attachments
inder.putLocal("renditionKeys", "aRendition0,aRendition1")
binder.putLocal("aRendition0.action", "edit")
binder.putLocal("aRendition0.name", "FileAttach")
binder.putLocal("aRendition0.file:path", "test.txt")
binder.addFile("aRendition0.file", TransferFile(File("test.txt")))
binder.putLocal("aRendition1.action", "edit")
binder.putLocal("aRendition1.name", "FileAttach")
binder.putLocal("aRendition1.file:path", "test.txt")
binder.addFile("aRendition1.file", TransferFile(File("test2.txt")))
# response
response = client.sendRequest (userContext, binder)
responseBinder = response.getResponseAsBinder ()
localData = responseBinder.getLocalData ()
dDocName = localData.get ("dDocName")
dID = localData.get ("dID")
Running:
. $MW_HOME/wlserver/server/bin/setWLSEnv.sh
java weblogic.WLST checkin_attachments.py
Reference:
https://blogs.oracle.com
MOS 2072524.1
My first alternative would be Batch Loading, however for the bacth loder file it was not possible because it does not actually support the rendition service.
With the next option, i tried to use the IdcCommand, but still had many problems, such as errors below:
sample hda file:
[oracle @ hostname bin] $ cat idctst.txt
@Properties LocalData
IdcService = EDIT_RENDITIONS
dID = 37020
renditionKeys = addRendition0
addRendition0.name = test543
addRendition0.action = edit
addRendition0.file = test.txt
addRendition0.file: path = / u01 / oracle / domains / content_domain / ucm / cs / vault / ~ temp / test.txt
@end
<< EOD >>
Executing:
[oracle @ hostname bin] $ ./IdcCommand -f idctst.txt -u sysadmin -l log.log -c server
Error:
Java HotSpot (TM) 64-Bit Server VM warning: Using the ParNew young collector with the Serial old collector is deprecated and will likely be removed in a future release
> system / 6 09.22 12: 22: 44.847 main Configuring tracing verbose: false; sections: system
> system / 6 09.22 12: 22: 44.848 main Configuring tracing verbose: false; Services:
09-29-2017: Error executing the EDIT_RENDITIONS service. Unable to process post data while adding or deleting attachments or renditions attached to content item 'OWCCDEV12C035232'. Invalid path to attachment.
My appeal was to use RIDC and needing a quick implementation, nothing better than using Jython.
Below, I share a simplified and functional version of the code:
cat checkin_attachments.py
from oracle.stellent.ridc import IdcClientManager
from oracle.stellent.ridc import IdcContext
from oracle.stellent.ridc.model import TransferFile
from java.io import File
manager = IdcClientManager ()
client = manager.createClient ("idc://127.0.0.1:4444")
userContext = IdcContext ("weblogic")
# client = manager.createClient ("http://127.0.0.1:16200/cs/idcplg")
# userContext = IdcContext ("<user>", "<password>")
# Checkin a new file
binder = client.createBinder ()
binder.putLocal("IdcService", "CHECKIN_NEW_WITH_RENDITIONS")
binder.putLocal("dDocTitle", "Test File")
binder.putLocal("dDocType", "Document")
binder.putLocal("dSecurityGroup", "Public")
binder.putLocal("dDocAccount", "")
binder.addFile("primaryFile", TransferFile(File("content1.txt")))
binder.putLocal("fParentGUID", "D53FEDE1CA293189BB21BBC2C2BC3089")
#Add Attachments
inder.putLocal("renditionKeys", "aRendition0,aRendition1")
binder.putLocal("aRendition0.action", "edit")
binder.putLocal("aRendition0.name", "FileAttach")
binder.putLocal("aRendition0.file:path", "test.txt")
binder.addFile("aRendition0.file", TransferFile(File("test.txt")))
binder.putLocal("aRendition1.action", "edit")
binder.putLocal("aRendition1.name", "FileAttach")
binder.putLocal("aRendition1.file:path", "test.txt")
binder.addFile("aRendition1.file", TransferFile(File("test2.txt")))
# response
response = client.sendRequest (userContext, binder)
responseBinder = response.getResponseAsBinder ()
localData = responseBinder.getLocalData ()
dDocName = localData.get ("dDocName")
dID = localData.get ("dID")
Running:
. $MW_HOME/wlserver/server/bin/setWLSEnv.sh
java weblogic.WLST checkin_attachments.py
Reference:
https://blogs.oracle.com
MOS 2072524.1
Comentários
Postar um comentário