on 2007 May 07 9:21 AM
Good morning,
i need a little hint for the following situation:
i created a entity service using a custom enumeration as an attribute. running this entity service in the CAF- Testtool the entries of the custom enumeration are displayed as expected, but...
i would like to use this custom enumeration inside a webdynpro without using the standard CAF webdynpro patterns, like object browser, object link etc...
when i create a DropDownbyKey and bind the datasource on a context node which has the type of my custom enumeration the following error occured.
How can i bind or access my custom enumeration inside the webdynpro runtime?
I am very grateful (awarding points ) for any help.
Thanks Jens
The initial exception that caused the request to fail, was:
com.sap.dictionary.runtime.DdException: SimpleType can't be created from xmlMap {SimpleType={ExternalRepresentation={uppercase=false, defaultValue=, maxExternalLength=0, readOnly=false, translateFlag=false, format=}, baseTypeName1=, typeKind=SimpleType, baseTypeName=, Hint={softwareLanguage=java, languageDataType=com.siemens.poc.customtypes.Group}, backendName=, TextObject={locale=, quickInfo=Group, docuUrl=, fieldLabel=Group, description=, columnLabel=Group}, prefix=com.siemens.poc.customtypes, classRepresentation=true, SchemaType={totalDigits=0, minExclusive=, maxLength=100, maxExclusive=, minLength=0, length=0, fractionDigits=0, maxInclusive=, minInclusive=}, builtInType=string, name=Group}}
at com.sap.dictionary.runtime.DdSimpleType.makeNew(DdSimpleType.java:188)
at com.sap.dictionary.runtime.DdSimpleType.makeNew(DdSimpleType.java:211)
at com.sap.dictionary.runtime.DdJavaProvider.getDataType(DdJavaProvider.java:62)
at com.sap.dictionary.runtime.DdJavaProvider.getDataType(DdJavaProvider.java:45)
at com.sap.dictionary.runtime.DdDictionary.getDataType(DdDictionary.java:95)
... 41 more
Request clarification before answering.
The first step is to uncheck the check box named "Generate a class representation of the enumeration", it turns out that dictionary runtime throws an exception (the one that you encounter) when this is check but no enumerations are entered in this screen - you are going to enter the enumeration value through the CAF's tool. The next step is to enter source code like the one shown below in the view controler (the exact place to enter the code depends on the use case):
TypedFieldDescriptorFactory factory = new TypedFieldDescriptorFactory();
TypedFieldDescriptor descriptor = factory.getTypedFieldDescriptor("", "String", "com.sap.Cities", null, Locale.GERMAN);
ISimpleType type = descriptor.getSimpleType();
ISimpleTypeModifiable modifiable = wdThis.wdGetAPI().getContext().getModifiableTypeOf("Cities.Cities");
modifiable.setSVServices(type.getSVServices());
and the Locale variable is the Locale you'd like to use, most probable it would be the user's locale. One last thing is that you reference to the DC caf/runtime/impl to build
the source code mentioned above, the public part is named "CAFRuntimeAPI". To define a reference for the runtime you need to modify the "Web Dynpro References" of the appropriate WebDynpro application by adding a "Shared Reference" to "sap.com/cafruntimeear".
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
77 | |
30 | |
10 | |
8 | |
8 | |
7 | |
7 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.