Folio : Document on Folio services for creating folio etc.,
Hi,
I need help to customize the existing folio pages, also looking for a document on Folio services.
Kindly point me to document on above area.
Thanks in advance
Siva
Hi there
Unless you are desiring to create web based output from Frame files, I'd say you likely won't gain anything by moving to RoboHelp. If you did, I'd say investigate the Tech Comms Suite where you get Frame, RoboHelp, Photoshop, Captivate and Acrobat. Then you would continue to author in Frame and simply use RoboHelp as a conduit to web based outputs or CHM files.
Cheers... Rick
Helpful and Handy Links
RoboHelp Wish Form/Bug Reporting Form
Begin learning RoboHelp HTML 7, 8 or 9 within the day!
Adobe Certified RoboHelp HTML Training
SorcerStone Blog
RoboHelp eBooks
Similar Messages
-
Shell script for creating,altering, etc ., a database
hi there,
Please help me to find shell scripts for creating,altering, etc a database..
Thanks & Regards,
Balu.Thanks to all , but dbca generates XML files :
<DatabaseTemplate name="MYDB" description="" version="10.2.0.0.0">
<CommonAttributes>
<option name="ISEARCH" value="false"/>
<option name="OMS" value="false"/>
<option name="JSERVER" value="true"/>
<option name="SPATIAL" value="true"/>
<option name="ODM" value="true">
<tablespace id="SYSAUX"/>
</option>
<option name="IMEDIA" value="true"/>
<option name="XDB_PROTOCOLS" value="true">
<tablespace id="SYSAUX"/>
..................I need a file.sql script to launch in sqlplus. Something like the following :
CREATE DATABASE MYDB
USER SYS IDENTIFIED BY ***
USER SYSTEM IDENTIFIED BY ***
LOGFILE GROUP 1 ('/home/oracle/oracle/instances/oradata/MYDB/redo1/redo01.log') SIZE 15M,
GROUP 2 ('/home/oracle/oracle/instances/oradata/MYDB/redo2/redo02.log') SIZE 15M,
GROUP 3 ('/home/oracle/oracle/instances/oradata/MYDB/redo3/redo03.log') SIZE 15M
...................... -
Web Service for "Creating Sales Order" by using BAPI
Hello All,
I am trying to create a WS for "Creating Sales Order". The corresponding BAPI that I am using for this purpose is BAPI_SALESORDER_CREATEFROMDAT1. I am able to create the Web Service and run the WSDL on WS Navigator.
But there is a problem whil executing the Web Service. In the interface of WS, we can only enter item level details of "Order Partner". So when I enter the details and click on Execute, it returns me an error message "Please enter Ship to Party and Sold to Party". I have already given these details.
Does any one have any idea of what is going wrong?
Regards,
AbhishekAs you suggested i have passed the suggested parameters in item level..But this time i was not ablet to create the SO also..earlier i am able to creat SO but not line item, But now ia m not able to creat salesdocuement also.
Return talbe filled with belwo messages.
S V4 233 SALES_HEADER_IN has been processed successfully
E V1 320 No item category available (Table T184 ZKB TEXT )
E V4 248 Error in SALES_ITEM_IN 000000
W V1 555 The sales document is not yet complete: Edit data
E V4 219 Sales document was not changed -
Content server for Document attachment through "services for object" Icon.
Guys,
I have typical problem in installation of Content server for storing external documents.
We all know that we can attach the document in SAP using the icon SERVICES FOR OBJECT. By this we can attach the document to the specific object we want.
-Since my client wants only document attachment method not to completely implement SAP DMS, I proposed this method of attaching documents through services for object method.
-If documents are stored though services for object ,The attached document will directly get stored in sap database(correct me if I am wrong) while in DMS it ask you to select the storage location while u check in for any document
-By storing the doc thru "services for object " For long run when we store the documents in sap database our system will drastically get slow down.
-In this regard I have a plan to incorporate external storage server.
-Now I should know that how I should customize content server configuration so that the attachment through services for object will store into this content server I need to know how to define Client, Content Category, Content Repository, Document Area, Physical Machine, IP Address, Port. (OACT & OAC0)
I appreciate for immediate solution and <u><b>Points will be rewarded for sure.</b></u>
Regards,
Murali.SHi Murali,
Don't Worry, its possible,
All attachments can be stored in SAP Content Server also, but through archiving process.
Set up a database storage system.
Preparation
Make sure that the HTTP plugin is active.
Transaction <b>SMICM,</b> "Display Services" function key (shift F1)). The list of services must contain a port other than 0 for HTTP.If not, you must adjust the relevant profile parameter.
<u>Typical entry:</u>
icm/server_port_0 PROT=HTTP, PORT=1080, TIMEOUT=900
<b>Make sure that the /sap/bc/contentserver service is active.</b>
If no user is defined, then use transaction SU01 to create a new user. Use the "System" user type.Assign
the SAP_ALL and SAP_NEW profiles to the user. (Eg: HRUSER/PLMUSER/PPUSER etc)
Transaction <b>SICF,</b> select: default_host - sap - bc -contentserver. Select the function to display/change the service. Make sure that a user is defined.
Using the relevant data from the newly created user, maintain the anonymous logon data for the
/default_host/sap/bc/ service and save & activate the changes in transaction <b>SICF</b>. Double click on content server and give the user name which has been created (HRUSER/PLMUSER/PPUSER/MMUSER etc)
Check the system PSE.
Start transaction <b>STRUST</b>. Expand the system PSE. The system PSE must be "green" for each application
server.
Determine a suitable exchange directory.
The exchange directory must be accessible from each application server. If all application servers are running on the same platform (for example, Windows), one network directory that is accessible on all application server (for example,
server\share) is sufficient. You can generally use the global directory
(profile parameter DIR_GLOBAL).You can use the RSPARAM report to determine the profile parameters.
Setting up the storage
Create a table for storing the data. Using transaction <b>SE11</b>, create a copy of the SDOKCONT1
table. If you want to create the repository database, you can name the table ZCONT_DB, for example. Save the
table as a local object. Activate the table.
Create a repository.
Use transaction <b>OAC0</b> to create a new repository.
Use the following parameters:
Repository Max. two characters, for example, Z1
DocArea: ARCHLINK
Storage type: R/3 database
Storage subtype: normal
Version no. : 0046
Contents table <table name> for example: ZCONT_DB
Exchange directory <directory name> for example:
server\share\
Make sure that the exchange list ends with a \ (or /on Unix).If you are using a variety of platforms, you must use transaction FILE to define a suitable logical file name and use this name. Save the settings.
1. Maintain view table <b>TOAAR_C</b>, via SM31
Cross client table displayed as information, forget it
2. In field 'StSytm' you must entered 'Z1' as your system need, or anything that you need but you must configure HR Archive link too.
3. In field 'Arch.path' (direct above Spoolpath), entered path in your system, this real path in your operating system. May be you should confirm to your Basis consultant where exactly you could store picture files. So if you enter '/', your file exists at root directory at your UNIX system.
4. Choose 'File store' radio button
5. Save.
First
<b>1. You have to create a number range for SAP ArchiveLink.
IMG: Basis Components-> Basis Services -> SAP ArchiveLink -> Basic Settings-> Maintain number ranges
(Trxn <b>OANR).</b> Create number range 01 from 0000000001 to 9999999999 without the external number flag.
2. Document type <b>HRICOLFOTO</b> must exist with document class JPG.
IMG: Basis Components->Basis Services->SAP ArchiveLink->System Settings->Maintain document types
(Table<b> TOAVE, Trxn OAC2).</b>
3. Document type <b>HRICOLFOTO</b> must be linked to object type PREL and Infotype PA0002.
IMG: Personnel Management->Personnel Administration->Tools->Optical archiving->Set up Optical Archiving
in HR. (View V_T585O, no Trxn). In the first two columns there are minuses, the third (Date) has
a plus - don't put a flag in the check box.
4. Check which content repository (Archive) is linked to document type HRICOLFOTO and object type
PREL. IMG: <b>Basis Components->Basis Services->SAP ArchiveLink->Basic Settings->Maintain Links (Table
TOAOM_C, Trxn).</b></b>
Test
Test the repository.
Use transaction SE38 to start the RSCMSTH0 report. Specify your repository (i.e. Z1) and start the test.
The report must run without errors. If no problems occurred, you can use the new repository with Archive Link after you carry out the Archive Link Customizing. If problems do occur, check whether one of the related
notes helps.
For More Details :
http://service.sap.com/archivelink.
<u><b>
NOTE:- Screen Shots are missing, i was not able to paste here, One more thing is we did this for uploading a PHOTOS into Content Server, Similarly you have to create a REPOSITORY and Z-TABLE to bring all the Attachments from all the selected Objects and then route them to the CONTENT REPOSITORY.</b></u>
Your Senior ABAP guy would help you in this, if not i may try to help you more by monday.
Regards
Rehman
<b>Reward Your Points if Satisfied.</b> -
Service for creating customer master - company code data....
Hi
I would like to know if there is a service to create customer master company code data?
I have identified 2 services one for general data (CustomerERPCreateRequestConfirmation_In) and sales area data (SalesArrangementERPCreateRequestConfirmation_In).
Regards
Srinivas DusiHere is the answer: Yes it is possible. Download the file, using option - File Download. File should include all key attributes & also attributes that needs to be updated. (Key here is to have appropriate assignment ID. )
Use the same file for File Upload (modify attributes like Sort Key as required). -
Enterprise services for create employee
hi all,
I need to know if there are any Enterprise Services to create an Employee?
thanks!Hi Pablo,
You can find Enterprise Services to manage Employees in the "Employee Administration" business process from ERP.
[http://esworkplace.sap.com/socoview(bD1lbiZjPTAwMSZkPW1pbg==)/render.asp?packageid=DE0426DD9B0249F19515001A64D3F462&id=0F76CD395C2E4CACA3CC9368E3E9CF52]
I Could find the service "EmployeePersonalAddressCreateRequestConfirmation_In".
[http://esworkplace.sap.com/socoview(bD1lbiZjPTAwMSZkPW1pbg==)/render.asp?packageid=DE0426DD9B0249F19515001A64D3F462&id=9C2B7FD0AF4D11DA2B24000F20DAC9EF]
But I doesn't create the employee itself... It adds an address to a Employee.
Regards,
Cezar -
HT4059 Has anyone found a reputable service for copy editing, etc?
Has anyone found a reputable service for copy editing, cover art and formatting for Word to iBook format?
Apple2Drew wrote:
Playlists were originally created to make CDS easier, so that's why I have hundreds
No it wasn't.
Playlists were created to make a list of songs.
Itunes does not make album recognition easy,
How is selecting an album not easy? And as you have noted, creating hundreds of palylists and managing them is NOT easy.
As many of you know, syncing playlists is a nightmare when you have many to sort through
Which is one reason to not create hundreds of playlists.
When I get a new cd, all I want is to drag and copy it to my ipod and iphone,
Why can't you select the album and drag it to the iPod or add it to one of a few playlists and sync?
should the artist start with an x or z.
Why not go the playlists and type x or z to go right there? -
KM Repository Service for creating a folder structure
Hi All,
We have a requirement in KM. Whenever a folder is created inside a folder (say '/documents/testFolder') ... .. a couple of subFolders need to be created inside this new folder.
For example, if the new folder's name being created is <i>parentFolder1</i> then, the following structure shud be created inside this folder.
parentFolder1
|--> subFolder1
|--> subFolder11
|--> subFolder12
|--> subFolder2
|--> subFolder21
I tried to implement a KM repository service::
My Rep Service code::
package com.test;
import java.util.Collection;
import java.util.Iterator;
import com.sap.tc.logging.Location;
import com.sapportals.config.fwk.CannotAccessConfigException;
import com.sapportals.config.fwk.Configuration;
import com.sapportals.config.fwk.IConfigClientContext;
import com.sapportals.config.fwk.IConfigManager;
import com.sapportals.config.fwk.IConfigPlugin;
import com.sapportals.config.fwk.IMutableConfigurable;
import com.sapportals.config.fwk.InitialConfigException;
import com.sapportals.portal.security.usermanagement.UserManagementException;
import com.sapportals.wcm.WcmException;
import com.sapportals.wcm.crt.component.IReconfigurable;
import com.sapportals.wcm.crt.component.StartupException;
import com.sapportals.wcm.crt.configuration.ConfigurationException;
import com.sapportals.wcm.crt.configuration.IConfiguration;
import com.sapportals.wcm.repository.AccessDeniedException;
import com.sapportals.wcm.repository.ICollection;
import com.sapportals.wcm.repository.IResource;
import com.sapportals.wcm.repository.NotSupportedException;
import com.sapportals.wcm.repository.Property;
import com.sapportals.wcm.repository.ResourceException;
import com.sapportals.wcm.repository.manager.IRepositoryManager;
import com.sapportals.wcm.repository.manager.IResourceEvent;
import com.sapportals.wcm.repository.manager.IResourceEventReceiver;
import com.sapportals.wcm.repository.manager.ResourceEvent;
import com.sapportals.wcm.repository.service.AbstractRepositoryService;
import com.sapportals.wcm.repository.service.ServiceNotAvailableException;
import com.sapportals.wcm.util.config.ConfigCrutch;
import com.sapportals.wcm.util.events.IEvent;
// implements IMyNewRepositoryService interface
Note: IReconfigurable and IResourceEventReceiver interfaces are optional
public class MytestRepositoryService extends AbstractRepositoryService implements IReconfigurable, IResourceEventReceiver {
private static final String TYPE = "com.test.MytestRepositoryService";
private Collection repositoryManagers;
private static final Location log = Location.getLocation(MytestRepositoryService.class);
//variables
private static final String PLUGIN_FOLDERCREATION_SERVICE = "/cm/repository_services";
private static final String CONFIGCLASS_FOLDERCREATION_SERVICE = "com.test.MytestRepositoryService";
private static final String readPlugins[] = { PLUGIN_FOLDERCREATION_SERVICE };
public static final String PROP_MYFOLDER = "myFolder";
public MytestRepositoryService() {
super();
// Do not add code here. Add it to startUpImpl() instead
public String getServiceType() {
return MytestRepositoryService.TYPE;
protected void startUpImpl(Collection repositoryManagers) throws ConfigurationException, StartupException {
// implement this method as follows:
// - Verify configuration data
// - Get references to other needed (global) services
// - Check whether other repository services (this service depends on) are also assigned to the repository managers
// - Usually the service registers itself for certain events at all repository managers
try {
catch (Exception e) {
throw new StartupException(e.getMessage(), e);
this.repositoryManagers = repositoryManagers;
Iterator it = repositoryManagers.iterator();
while (it.hasNext()){
try {
addRepositoryAssignment((IRepositoryManager) it.next());
} catch (ServiceNotAvailableException e) {
e.printStackTrace();
protected void shutDownImpl() {
Iterator it = repositoryManagers.iterator();
while (it.hasNext()){
try {
removeRepositoryAssignment((IRepositoryManager) it.next());
} catch (WcmException e) {
e.printStackTrace();
protected void addRepositoryAssignment(IRepositoryManager mgr) throws ServiceNotAvailableException {
// Implement this method: Usually the service registers itself for certain events at the repository manager.
try {
// mgr.getEventBroker().register(this, ResourceEvent.ALL_TEMPLATE);
mgr.getEventBroker().register(this, new ResourceEvent(ResourceEvent.CREATE_COLLECTION, null));
} catch (WcmException e) {
e.printStackTrace();
protected void removeRepositoryAssignment(IRepositoryManager mgr) throws WcmException {
// Implement this method: Usually the service must unregister itself as an event handler.
// mgr.getEventBroker().unregister(this, ResourceEvent.ALL_TEMPLATE);
mgr.getEventBroker().unregister(this, new ResourceEvent(ResourceEvent.CREATE_COLLECTION, null));
public void reconfigure(IConfiguration config) throws ConfigurationException {
this.stateHandler.preReconfigure();
// check the new configuration data
try {
catch (ConfigurationException ex) {
this.stateHandler.postReconfigure(ex);
throw ex;
this.config = config;
this.stateHandler.postReconfigure();
public void received(IEvent event) {
IResourceEvent myEvent = (IResourceEvent) event;
IResource resource = (IResource) myEvent.getParameter();
String repositoryPath = "";
String parentPath = "";
//get the configuration...
try {
IConfigClientContext context = IConfigClientContext.createContext(ConfigCrutch.getConfigServiceUser());
IConfigManager cfg = Configuration.getInstance().getConfigManager(context);
IConfigPlugin configPlugin = cfg.getConfigPlugin(PLUGIN_FOLDERCREATION_SERVICE);
if (configPlugin != null) {
IMutableConfigurable[] configurables = configPlugin.getConfigurables(CONFIGCLASS_FOLDERCREATION_SERVICE, false);
for (int i = 0; i < configurables.length; i++) {
IMutableConfigurable configurable = configurables<i>;
if (configurable.getConfigClass().getName().equals(CONFIGCLASS_FOLDERCREATION_SERVICE)) {
// now get the attribute value...
repositoryPath = configurable.getPropertyValue(PROP_MYFOLDER); //// "documents/parentFolder1"
} catch (InitialConfigException e2) {
e2.printStackTrace();
} catch (CannotAccessConfigException e2) {
e2.printStackTrace();
} catch (UserManagementException e2) {
e2.printStackTrace();
try {
parentPath = resource.getParentCollection().getRID().toString();
} catch (AccessDeniedException e1) {
e1.printStackTrace();
} catch (ResourceException e1) {
e1.printStackTrace();
if(repositoryPath.equals(parentPath))
//write my code here
if (resource != null && (resource.isCollection()) )
ICollection parentFolder = (ICollection) resource;
try {
<b>parentFolder.createCollection("subFolder1",null);</b>
} catch (NotSupportedException e) {
e.printStackTrace();
} catch (AccessDeniedException e) {
e.printStackTrace();
} catch (ResourceException e) {
e.printStackTrace();
<b>...MytestRepositoryService.co.xml:</b>
- <Configurable configclass="com.test.MytestRepositoryService">
<property name="name" value="com.test.MytestRepositoryService" />
<property name="active" value="true" />
<i> <property name="myFolder" value="/documents/parentFolder1" /></i>
<property name="description" />
</Configurable>
<b>...MytestRepositoryService.cc.xml:</b>
- <ConfigClass name="com.test.MytestRepositoryService" extends="RepositoryService">
<attribute name="class" type="class" constant="com.test.MytestRepositoryService" />
</ConfigClass>
Have i done it right?? Where am i going wrong??? Plz advice.
I need to 'myFolder' as a configurable property in KM's <i>Content Management --> Repository Services</i> section.
Thanks!
Regards,
SK.Hi,
I haven't check your code but you know that you can archive the same without writing a portal componente by using the template feature. It is a simple customizing. See http://help.sap.com/saphelp_nw70/helpdata/en/55/83bd402b8d8031e10000000a1550b0/frameset.htm
Best Regards
Frank -
No entry for / created in /etc/fstab during Arch 0.6 install
The other day I installed Arch here on one of the machines at work that will eventually be replacing the current intranet webserver. I used an Arch 0.6 CD I had laying around, and everything went fine. However, during the post-install boot I kept getting errors relating to remounting / read-write and not being able to clear out the temporary directories and such, and the system would hang in a few places while the init scripts were running. And since / was never getting remounted read-write properly, I was booting into a read-only system. I don't have the exact errors and places it was hanging in front of me, but I remember one of them was something about not finding / in /etc/fstab or /etc/mtab. I checked /etc/fstab, and sure enough, the entry for / was missing. So I rebooted and had grub start / read-write from the get-go and added the entry for / in /etc/fstab and that did the trick.
So, has anyone else run into anything like this, or am I just the victim of a strange fluke? The system is a Dell Precision 210 workstation, with dual P3 450MHz CPUs and 256MB RAM sitting in an i440BX motherboard (not sure of the manufacturer/model off hand.) The system drive is a Quantum Atlas IV 9 WLS (9GB) SCSI drive running on an Adaptec 2940U2 OEM PCI card.it could be a fluke or it could be one small minor missed step in the installe that caused this.
-
Hi all,
we have to work with documents and i'm trying to use the services in the document object like:
ECC_DocumentCrtRC -> for create documents
ECC_DOCUMENTIDQR -> for read documents
My problem is that i don't know what parameters I have to use, and I haven't found any documentation related with that.
Have someone used these services to work with documents?
Any help will be fantastic.
Thanks in advance and best regards,
EduardoHi Joe,
SharePoint 2013 includes document management features that you can use to control the life cycle of documents in your organization — how they are created, reviewed, and published, and how they are ultimately disposed of or retained. There are some features
needed to be enabled for some requirements(ex. Document Set, versioning, content approval etc.). There is an article which will guide you in planning the document management features of your solution that is based on SharePoint 2013. Please take a look at:
http://technet.microsoft.com/en-us/library/cc263266(v=office.15).aspx
For uploading a document into SharePoint, you need to create a web application and create a site collection for the web application in Central Administration. After that, open the top site of the site collection, you can upload documents into the existing
library "Documents", or can create a new document library, then upload the documents into the new library.
Best Regards,
Wendy
Wendy Li
TechNet Community Support -
Standard web services for Goods receipt and purchase order
Hi,
Can you please tell me the std web services for creating the Purchase order and Goods receipt?
Is there a link where i can get the information on this implementation?
Thanks
SriniHi,
Please reffer ES workplace.
[Order to Cash|http://esworkplace.sap.com/socoview(bD1lbiZjPTAwMSZkPW1pbg==)/render.asp?packageid=DE0426DD9B0249F19515001A64D3F462&id=9B0DDD8CCC484FA79EBBBA7F78B57DA7]
Thanks
Farooq -
Hi,
I am uploading the Documents in the Services for object.( tcode ME22N.).
When the PO is released , then also i am able to change or delete the attachment.
I dont want to delete or edit the document after the PO is released.
How to contol this?. .
Regards,
ChetanHi Chetan,
That is not the correct way of generatin the document because you doc needs to go to the SAP server and it should not be accessed by any one it should be in the read only format.
please.
and one more technical reason is that it takes a lot of space in the server if you upload it directly by the above told path, please go as per the process.
In DMS you have to define the Document Type for the Document that will be uploaded and there relevent document where your uploaded document will be used. like justification notes will be used by the PR and PO.
Please follow this path.
Regards,
Yawar khan
Edited by: 1234_abcd on May 23, 2011 12:57 PM -
Additional Services for Office 365's underlying Azure
Hello,
is it possible to use the Azure subscription i can access through my Office 365 subscription like any other Azure subscription?
Can I buy additional Services like Azure Media Services for Live Streaming etc, or is it solely for AD Management of my Office 365 users or are there restrictions
Thanks in advanceHi,
>>is it possible to use the Azure subscription i can access through my Office 365 subscription like any other Azure subscription?
If you want to sign in azure subscription with Office 365 account, please go through with this article:
http://www.edutech.me.uk/active-directory/microsoft-azure-how-subscription-administrators-directory-administrators-differ/.
>>Can I buy additional Services like Azure Media Services for Live Streaming etc,
please try to contact with your server administrator to enable the Media Services,
this article
shows us about the detail steps to add Azure scheduler service to azure portal, hope it helps, this issue is more related to azure account, you could also get further help from azure support:
http://www.windowsazure.com/en-us/support/contact/
If I misunderstand, please feel free to let me know.
Best Regards,
Jambor
We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
Click
HERE to participate the survey. -
Services for Object - Create external document (url) 132 characters limit
Hello,
I have this requirement:
Maintenance people would like to relate a document on our portal on a work order to be able to print it with the work order.
My suggestion was to use Services for Object in the Order -> Create external document (url).
But the adress field cannot contain more than 132 characters.
I have URL longer than 132 chars:
eg: http://server.domain:port/irj/go/km/docs/documents/AAI/Gestion%20documentaire/Public/Entretien/Instructions%20de%20travail/EU-IT-01-02.pdf
What do you suggest me?
Thanks,
FrançoisThank you Pete but we are release 700 and this note applies to release 620 and older. I will try to find another note or another way.
In the meantime we use the short-ID of SAP Portal Documents which are long to retrieve but always under 132 char.
François -
How do I create a "document-centric" Web Service?
By document-centric I'm talking about receiving a SOAP message on the server-side, where the initial parsing and security processing (this aspect is very important) is performed but then allowing the developer to access the delivered "payload", i.e. the XML, and perform whatever mapping/processing that is required without automatically mapping to the "standard" auto-generated Java objects.
It is important that the client receives the "full" complex WSDL and can therefore generate their proxy classes with whatever tool (or language) that is appropriate.
On the server side we do not want to create hundreds (if not thousands) of Java Bean clases as we already have the legacy code to map XML to Java. The idea is that JAX-RPC only instantiates the SOAPElements that represent the "raw" message, or, if possible, doesn't instantiate any objects whatsoever.
I've spent many days now trying to find a single well-worked example for this type of Web Service without success - many, many references of the style "..and you can then create a document style web service.." but without the all important "how".
From what I've read a custom type-mapping and/or serializer/deserializer could be the answer but again no good, solid examples are forthcoming.
Another alternative seems to be to create the server side stub-classes using a "dummy" WSDL with the elements set to "anyType" but then distribute the "genuine" WSDL to the clients - we've got a simple example of the kind working but I don't like the idea of "tricking" the system in this way.
I'm working with WASD 5.1, which in theory conforms with JAX-RPC so any ideas offered here should also apply in that environment.
Has ANYONE successfully created a service of this type?
Any help with this issue would be very much appreciated and rewarded (with Duke Dollars of course).
Chris.Chris,
I too noticed that most vendors take the RPC centric approach. Its because most of the industry examples of how WSs were used were simple enough to implement using RPC and anything more (document literal) would add to the complexity of implementation. This is something that is feared by many developers, especialy the .Net crowd who seem to want everything done through a wizard menu interface and don't care about other WS implementations at all.
This is sort of changing. J2EE 1.4 is WS-I compliant, so when you compile server side ties from WSDL you can specify a document literal option and WS-I compliance. This gives you access to the SOAPElement objects. There's still issues with going between W3C DOM and SOAP elements but that's just API inconvenience, not a show stopper. As the inudustry develops more complex WSs we will see the vendors change their tools to better support this...
Anyway, some more help...
I use the the following wscompile options to build from WSDL for document literal WSs.
wscompile.bat -d . -nd . -s . -f:documentliteral -f:wsi -keep -model model.gz -import config.xml
wscompile.bat -d . -nd . -s . -f:documentliteral -f:wsi -keep -model model.gz -gen:server config.xml
My "wrapper" elements look like this...
<xs:element name="AComplexXMLResponse">
<xs:complexType>
<xs:sequence>
<xs:element ref="myNS:MYComplexXMLType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
If I do this:
<xs:element name="ASimpleXMLResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="AName" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
I still get the JAXRPC language bindings to a string, but in my case I don't really care. This may well be different for you.
What I do to manage these elements is to split up the WSDL, WS wrapper element definitions and actual data XML schema definitions into separate documents. This means I have a WSDL which IMPORTS my message schema (this is where I define wrappers for in and out XML) which INCLUDES the actual DATA XML schema that I have.
The WSDL import looks like this:
<types>
<xs:schema>
<xs:import namespace="http://schemaURI" schemaLocation="./relativePath/WrapperElementSchema.xsd"/>
</xs:schema>
</types>
The wrapper element schema has:
<xs:include schemaLocation="./ActualDataSchema.xsd"/>
This way I can easily replace the wrapper documents with just anyType references if something doesn want to play nice. The data schema file and the WSDL stay the same. This minimises the impact on what you have to change in your distribution. This is important as the WSDL is often generated on the fly by your WS environment and so can not be easily changed once you build your WSs, but the schema files it references are easily changed without affecting your code.
Another reason for the wrapper elements was a JWSDP 1.2 issue (I don't know if this has been fixed in 1.3), where if you had the same method parameter signature in a web service (the parameters it took were the same XML types, for instance if you have an add and update methods for the same document input) JWSDP would get confused at runtime. It did not take account of the SOAP action that came along with the request to determine which operation to call. It just took the incoming XML, saw that it was of a certain type and it passed it to the first operation that took this element, which is VERY wrong. By using the wrapper elements, I could give all my input and output elements for each method different names (I used a naming stragegy that appended a 'request' or 'response' string to the method name to form a method parameter element name. This is a pain in the ass, but works and does wonders for interoperability with other WS vendors. Like I said before, I've got this working with JWSDP, BEA and .Net servers and clients.
Hope this helps,
If you think there is a real need for a public HOWTO on this, I could write one with a full step by step guideline that shows where I broke my legs getting this stuff to work. But this would eat into my sleep time :-/ TO JUDGE INTEREST I call on all people interested in a tutorial to respond to this thread (esp people involved with the JWSDP WS tutorial documentation). If I get 5 or more different people responding I will loose some sleep for the good of this community. Otherwise, I will just try to help you when I have time to read the forums.
Kuba
Maybe you are looking for
-
Hi For past year or so my mac book has been getting gradually worse. Spinning wheel, and overheating, last night I had trouble just getting it to start in Safe Mode (been using the on/off button a lot lately!) Problem may be related to media - iMovie
-
Netgear and my mac, and a suggestion to reinstall OSX
Newbie to all things mac. I have a new Macbook pro15 using OSX 6.5 I have been on to suupport twice as the airport can see my network, but keeps forgetting the network settings and defaulting to the self assigned IP address. support have walked me th
-
Album Art and Gapless Playback.
Is there a way to COMPLETELY JUST SHUT OFF THESE FEATURES they sllllllooooooooowwwwww everything down. Even shutting them down manually stinks. Jamie
-
Problem setting 2 alerts while saving an event in Calendar?
An incredibly annoying quirk that I have to believe is a software issue-pssst Apple, FIX IT! Task: Saving a new event in Calendar with both First alert & Second alert. First Alert set (for example) to "30 min before" - Second Alert set to "At time of
-
How to set self timer in Canon PowerShot SD800 IS
Hi, I am owning Canon PowerShot SD800 IS digital camera. How do i set self timer to shoot my picture when there is nobody around me. Regards, Kaushal