Oracle Analytics Cloud and Server

Welcome to the Oracle Analytics Community: Please complete your User Profile and upload your Profile Picture

report translation in bipublisher

Question
41
Views
0
Comments

Summary

report translation in bipublisher

Content

Hello,

I am using Oracle BI Publisher 12.2.1.3.0  (build:20170720.0424) - not obiee suite.

I am trying to translate report strings/labels, but not the conventional way(XLIFF uploaded document), i want a more dynamic/updateable.

In dataSet i have a query retrieving the already translated strings/labels.

I just have to pick the tags and use them as placeholders in report (same in rtf or xpt layouts), e.g.:

image

image

on runtime these will show the current translation inserted in DB (which is my goal - with the lowest work/code possible ).

But i found a limitation on this. When i have a table and totals in that table i would like to translate both  the column headers and the totals, and that i can not achieve (so far - but i am counting on you all).

Check e.g. below:

image

i have a label 'TIPODESC' which is translated but 'Type' is hard-coded as column header name and i would like it to be the value i retrieve from DB (same applies for rtf ).

Another approach was indeed with the XLIFF, but in that case i need to update the XLIFF immediately after some one change the translation.

I thouth about using BIP API, so i have created an application to achieve that, but i am getting error with:

        try {            xliffBytes =                this.bipCatalogService.downloadXLIFF(objectAbsolutePath, pLocale, userID, password);

and it shows this image:

image

The full stack trace is :

<weblogic.wsee.WseeCoreMessages> <WseeCoreMessages> <errorLogException> <Error while invoking endpoint http://nextgen-wlui12c.conceptsoftware.eu:9502/xmlpserver/services/v2/CatalogService from client; ServiceName: {http://xmlns.oracle.com/oxp/service/v2}CatalogService ; PortName: {http://xmlns.oracle.com/oxp/service/v2}CatalogService ; Client side features: [weblogic.jws.jaxws.client.ClientIdentityFeature]; Client side policies: > <29-Nov-2017, 12:53:44,298 PM WET> <Error> <HTTP> <BEA-101017> <[ServletContext@825818240[app:BipWS_API module:BipWS_API-RESTWebService-context-root path:null spec-version:3.1 version:V0.0.1.0], request: weblogic.servlet.internal.ServletRequestImpl@12a5628f[GET /BipWS_API-RESTWebService-context-root/resources/restwebservice/getXLIFF?pAdminName=ccarvalho&pPassWord=cc.c0nc3pt&pLocale=italian HTTP/1.1Connection: keep-aliveCache-Control: no-cacheUser-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36Postman-Token: 6826582b-62fd-090f-b61d-e0d36c58b33aAccept: */*Accept-Encoding: gzip, deflateAccept-Language: en-US,en;q=0.9]] Root cause of ServletException.com.sun.xml.ws.fault.ServerSOAPFaultException: Client received SOAP Fault from server: java.lang.NullPointerException Please see the server log to find more detail regarding exact cause of the failure.at com.sun.xml.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:193)at com.sun.xml.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:136)at com.sun.xml.ws.client.sei.StubHandler.readResponse(StubHandler.java:253)at com.sun.xml.ws.db.DatabindingImpl.deserializeResponse(DatabindingImpl.java:205)at com.sun.xml.ws.db.DatabindingImpl.deserializeResponse(DatabindingImpl.java:292)Truncated. see log file for complete stacktrace> <29-Nov-2017, 12:53:44,316 PM WET> <Notice> <Diagnostics> <BEA-320068> <Watch "UncheckedException" in module "Module-FMWDFW" with severity "Notice" on server "DefaultServer" has triggered at 29-Nov-2017 12:53:44 o'clock WET. Notification details: WatchRuleType: Log WatchRule: (SEVERITY = 'Error') AND ((MSGID = 'WL-101020') OR (MSGID = 'WL-101017') OR (MSGID = 'WL-000802') OR (MSGID = 'BEA-101020') OR (MSGID = 'BEA-101017') OR (MSGID = 'BEA-000802')) WatchData: MESSAGE = [ServletContext@825818240[app:BipWS_API module:BipWS_API-RESTWebService-context-root path:null spec-version:3.1 version:V0.0.1.0], request: weblogic.servlet.internal.ServletRequestImpl@12a5628f[GET /BipWS_API-RESTWebService-context-root/resources/restwebservice/getXLIFF?pAdminName=ccarvalho&pPassWord=cc.c0nc3pt&pLocale=italian HTTP/1.1Connection: keep-aliveCache-Control: no-cacheUser-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36Postman-Token: 6826582b-62fd-090f-b61d-e0d36c58b33aAccept: */*Accept-Encoding: gzip, deflateAccept-Language: en-US,en;q=0.9]] Root cause of ServletException.com.sun.xml.ws.fault.ServerSOAPFaultException: Client received SOAP Fault from server: java.lang.NullPointerException Please see the server log to find more detail regarding exact cause of the failure.at com.sun.xml.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:193)at com.sun.xml.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:136)at com.sun.xml.ws.client.sei.StubHandler.readResponse(StubHandler.java:253)at com.sun.xml.ws.db.DatabindingImpl.deserializeResponse(DatabindingImpl.java:205)at com.sun.xml.ws.db.DatabindingImpl.deserializeResponse(DatabindingImpl.java:292)at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:119)at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:92)at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:161)at com.sun.proxy.$Proxy365.downloadXLIFF(Unknown Source)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at weblogic.wsee.jaxws.spi.ClientInstanceInvocationHandler.invoke(ClientInstanceInvocationHandler.java:147)at com.sun.proxy.$Proxy366.downloadXLIFF(Unknown Source)at restwebservice.BipWS.getXLIFF(BipWS.java:437)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81)at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:144)at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:161)at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:205)at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:99)at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389)at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347)at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102)at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:326)at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)at org.glassfish.jersey.internal.Errors.process(Errors.java:315)at org.glassfish.jersey.internal.Errors.process(Errors.java:297)at org.glassfish.jersey.internal.Errors.process(Errors.java:267)at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317)at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305)at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154)at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:471)at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:425)at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:383)at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:336)at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:223)at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:286)at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:260)at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:137)at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:350)at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:25)at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:141)at java.security.AccessController.doPrivileged(Native Method)at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:650)at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:124)at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:232)at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:94)at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:248)at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3683)at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3649)at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:326)at weblogic.security.service.SecurityManager.runAsForUserCode(SecurityManager.java:197)at weblogic.servlet.provider.WlsSecurityProvider.runAsForUserCode(WlsSecurityProvider.java:203)at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:71)at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2433)at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2281)at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2259)at weblogic.servlet.internal.ServletRequestImpl.runInternal(ServletRequestImpl.java:1691)at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1651)at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:270)at weblogic.invocation.ComponentInvocationContextManager._runAs(ComponentInvocationContextManager.java:348)at weblogic.invocation.ComponentInvocationContextManager.runAs(ComponentInvocationContextManager.java:333)at weblogic.work.LivePartitionUtility.doRunWorkUnderContext(LivePartitionUtility.java:54)at weblogic.work.PartitionUtility.runWorkUnderContext(PartitionUtility.java:41)at weblogic.work.SelfTuningWorkManagerImpl.runWorkUnderContext(SelfTuningWorkManagerImpl.java:640)at weblogic.work.ExecuteThread.execute(ExecuteThread.java:406)at weblogic.work.ExecuteThread.run(ExecuteThread.java:346) SUPP_ATTRS = {severity-value=8, rid=0, partition-id=0, partition-name=DOMAIN} SERVER = DefaultServer TIMESTAMP = 1511960024298 USERID = <WLS Kernel> MACHINE = ccarvalho-jdev122.conceptsoftware.eu MSGID = BEA-101017 DATE = 29-Nov-2017, 12:53:44,298 PM WET SUBSYSTEM = HTTP CONTEXTID = dc762882-7186-405a-83fc-e4283a1fe490-00000161 TXID =  SEVERITY = Error THREAD = [ACTIVE] ExecuteThread: '28' for queue: 'weblogic.kernel.Default (self-tuning)'  WatchAlarmType: AutomaticReset WatchAlarmResetPeriod: 30000 

I have already other methods working fine in the application, so i know i can connect to server fine.

That application was created as a web service client and proxy option from jdev12.2.1.2

Can someone provide me some help?

Thanks

Carlos