P

Tuesday, November 9th, 2021 10:37 AM

sap-businessobjects-to-collibra-integration

Hello ,

i need to connect SAP BO to Collibra . the sample code provided on marketplace is a bit confusing also its look like some part of code is missing() . if any one have latest version of sample code or the exact steps for integration that would be helpful.

When i tried to launch app without fixing error.it showed me below error:

com.collibra.marketplace.sap.businessobjects.Application - No active profile set, falling back to default profiles: default

2021-11-10 17:28:25,759 [main] ERROR org.springframework.boot.SpringApplication - Application run failed

java.lang.NoSuchMethodError: org.springframework.web.context.support.ServletContextAwareProcessor: method ‘void ()’ not found

If anyone have any solution or point of contact for this type of integration. please Guide us

Thanks In advance

1.2K Messages

3 years ago

I am also looking for same Resolution …Please let me know if anyone can help on this…Regards

4 Messages

3 years ago

Hi Pratik and Priyabrata,

Are you running the integration from an IDE? If so, then probably you have some missing configurations or incorrect configurations in your IDE.

Can you try instead to run the integration from terminal by navigating to the sbi-sap-bo-1.0.0 folder (where the pom.xml file resides) and running this command:
mvn spring-boot:run

Alternatively, you can first package the jar using:
mvn clean package
and then execute the jar (created in the target folder ) using:
java -jar sbi-sap-bo-1.0.0.jar

39 Messages

3 years ago

Hi James & Data Citizens,

Thanks for helping us.

All other configuration related issues were resolved , but we are getting below exception while running the application.

Please refer a above screenshot and please help us out.

368 Messages

Hi Pratik,

The connector is failing to authenticate with Collibra on startup. The login request is hitting Collibra and is not technically failing (since the response code is 200), but the response obtained is not as expected (the expected response should contain a Collibra session ID in the Cookie header).

Most probably the reason for this is that the collibra.url property in the application.properties file is not set correctly. If the URL of the sign in page of your Collibra instance is as follows: https://acme.collibra.com/signin, then collibra.url must be set to exactly https://acme.collibra.com.

39 Messages

Hi Team,

Thanks For Guiding us.

i changed the url and now it is throwing 401 error code .The user name and password is correct.
Please see below error.


368 Messages

Hi Pratik,

This error can only be due to an incorrect username and/or an incorrect password and/or an incorrect Collibra URL. Please make sure that there aren’t any trailing “/” in the URL or any trailing empty spaces in the username/password/URL.

39 Messages

3 years ago

Hi Team,

There are no trailing “/” in the URL that we have provided in application.properties . I am able to login using the same username and password when i hit DGC via the browser. so the credentials are valid
and i can login .Not sure why the same credentials are not working with the connector .

can we set-up a quick call to discuss on this error.

Thanks,
Pratik

12 Messages

Hi Pratik,

My suggestion would be to have a look in the dgc.log and check for entries with “UserAuthenticationListener” this will provide you with more detail as to why the authentication fails.

Regards,
Bas

39 Messages

3 years ago

Hi Bas,

As you suggested i checked the DGC logs.In the logs i can see below error entries of userAuthenticationListner

"
** Line 11796: 2021-11-30 12:36:59.410 [ajp-nio-0.0.0.0-8080-exec-37] INFO c.c.d.c.s.a.UserAuthenticationListener - User failed to log in: AuthenticationEvent{userName=‘This is correct just removing beacuse of client data proetection’, sessionId=‘null’, realms=null, timeout=0, licenseType=CONSUMER, productPermissions=‘null’, action=LOGIN, remoteHost=‘null’, userAgent=‘null’, userAgentVersion=‘null’, failureReason=org.apache.shiro.authc.AuthenticationException: Authentication token of type [class org.apache.shiro.authc.UsernamePasswordToken] could not be authenticated by any configured realms., timestamp=1638275819410} [trace_id=95b9d883383180bf8636ffd163a0a1f6, trace_flags=01, span_id=608c82deae57b9df]**
"
Please have a look and guide us for further step.

Thanks
Pratik

12 Messages

Hi Pratik,

It looks like your account doesn’t have enough permissions inside Collibra as it states

licenseType=CONSUMER

Regards,
Bas

39 Messages

Hi Bas,

now my local is running fine. do you have any steps what to do next for ingestion of SAP business objects to collibra. I did not see any document in market place. We did not have a much idea about ingestion. Do you have any document handy .

Really appreciate your help.

Thanks,
Pratik

12 Messages

Hi Pratik,

Please read the documentation under Triggering the integration

Kind Regards,
Bas van Reeuwijk

39 Messages

3 years ago

Hi Bas van Reeuwijk,

What i need to fill in place of server host

i know about server-port which is in application.properties

EX. In this case
https://server-host:8081/sync

Thanks,
Pratik

39 Messages

3 years ago

Hi Bas,

The application has started.
Please find below the application logs showing the start-up
2021-12-01 11:26:43,384 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler [“http-nio-8081”]
2021-12-01 11:26:43,410 [main] INFO org.springframework.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8081 (http) with context path ‘’
2021-12-01 11:26:43,575 [main] INFO com.collibra.marketplace.sap.businessobjects.Application - Started Application in 7.577 seconds (JVM running for 10.026)

However, We are unable to reach the below end point from Chrome browser. Can you please check .

https://localhost:8081/sync

Can you please share any screenshot for the above endpoint screen when hit from local machine ?
Also can you please let us know the significance of the below properties from application.properties file and how we can configure these in local?
server.ssl.enabled=
server.ssl.key-alias=
server.ssl.key-store=
server.ssl.key-store-password=
server.ssl.key-password=

Thanks,
Pratik

12 Messages

Hi Pratik,

I would recommend to not use SSL so set server.ssl.enabled=false

This would mean that you use http://localhost:8081/sync

To setup SSL please check the documentation

Kind Regards,
Bas van Reeuwijk

39 Messages

3 years ago

Hi Bas,

As you guided us. i created keystore.jks file. See the below screenshot.

After that i configure the values in application.properties.(This is correct right or do i need to change anything)
Refer below screenshot.


Now i m try to running the application it asking me the username and password.
Refer below ss.


Which credentials i need to pass here ? (Collabra, SAP BO or any other)

Thanks,
Pratik

12 Messages

Hi Pratik,

Here you need to pass the credentials that you have set in the integration properties file for trigger.api.username and trigger.api.password

Regards,
Bas

39 Messages

3 years ago

Hi Bas,

Screenshot of Application.properties

I am passing the same credenticals.

But it is throwing below error.

do you have any idea what is the issue here.

Thanks
Pratik

12 Messages

Hi Pratik,

The integration expects a POST request, so you’ll need to use something like Postman https://www.postman.com/ to trigger the integration.

Regards,
Bas

39 Messages

3 years ago

Hi Bas,

I also tried using POSTMAN . Please refer below screenshot.

Am i doing anything wrong in postman ?

Thanks,
Pratik

368 Messages

The triggering endpoint is http://localhost:8081/api/sync

39 Messages

3 years ago

Hi Team,

I got below error:

I have hidden the URL for privacy.
i tried two different path to connect with BO and fetch the token:

  1. biprws/logon/long
    2)v1/logon/long

but it is throwing an error in both cases.

can you please tell us what is the issue here.

Thanks,
Pratik

39 Messages

3 years ago

Hi Team,

Can you please guide us which kind of SAP BO access required to connect with SAP BO and fetch the metadata using the this integration.

Thanks,
Pratik

39 Messages

Hi @bas.van.reeuwijk @spring-team.collibra.com @james_scicluna.epam.com ,

Can you please help here, Below error is coming after the fetching Folders from SAP BO:

com.collibra.marketplace.library.integration.CollibraAsset@67a5cca3
2021-12-13 15:50:13,862 [http-nio-8081-exec-2] INFO com.collibra.marketplace.library.integration.CollibraImportApiHelper - Total number of asset batches to upsert: 1
2021-12-13 15:50:17,645 [http-nio-8081-exec-2] ERROR com.collibra.marketplace.sap.businessobjects.exception.GlobalExceptionHandler - Internal error during execution.
com.collibra.marketplace.library.integration.exception.CollibraIntegrationLibraryException: {“message”:“There are one or more validation errors.”,“details”:“The attribute having ID/name ‘00000000-0000-0000-0001-000500000045’ of asset ‘AegGVp7JqrxDtJOKG8.oYBY>Signet Location>_iMFrgJ0-EeeyRZEB7IsL2A’ has an invalid value. Error: The attribute having value ‘null’ and values 'null is not valid. Either value or values must be defined.”}
** at** com.collibra.marketplace.library.integration.CollibraImportApiHelper.internalImportAssetsInBatches(CollibraImportApiHelper.java:575) ~[collibra-integration-library-1.0.2.jar:1.0.2]
at com.collibra.marketplace.library.integration.CollibraImportApiHelper.importAssets(CollibraImportApiHelper.java:111) ~[collibra-integration-library-1.0.2.jar:1.0.2]
at com.collibra.marketplace.sap.businessobjects.service.MainProcessor.start(MainProcessor.java:95) ~[classes/:?]
at com.collibra.marketplace.sap.businessobjects.controller.EntryPointController.syncTriggeredByApiRequest(EntryPointController.java:51) ~[classes/:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:197) ~[spring-web-5.3.9.jar:5.3.9]
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:141) ~[spring-web-5.3.9.jar:5.3.9]
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106) ~[spring-webmvc-5.3.9.jar:5.3.9]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.9.jar:5.3.9]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.9.jar:5.3.9]
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.9.jar:5.3.9]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1064) [spring-webmvc-5.3.9.jar:5.3.9]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) [spring-webmvc-5.3.9.jar:5.3.9]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) [spring-webmvc-5.3.9.jar:5.3.9]
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) [spring-webmvc-5.3.9.jar:5.3.9]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:681) [tomcat-embed-core-9.0.50.jar:4.0.FR]
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) [spring-webmvc-5.3.9.jar:5.3.9]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) [tomcat-embed-core-9.0.50.jar:4.0.FR]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:228) [tomcat-embed-core-9.0.50.jar:9.0.50]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) [tomcat-embed-core-9.0.50.jar:9.0.50]
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) [tomcat-embed-websocket-9.0.50.jar:9.0.50]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190) [tomcat-embed-core-9.0.50.jar:9.0.50]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) [tomcat-embed-core-9.0.50.jar:9.0.50]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327) [spring-security-web-5.5.1.jar:5.5.1]
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115) [spring-security-web-5.5.1.jar:5.5.1]
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81) [spring-security-web-5.5.1.jar:5.5.1]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.5.1.jar:5.5.1]
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:121) [spring-security-web-5.5.1.jar:5.5.1]
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115) [spring-security-web-5.5.1.jar:5.5.1]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.5.1.jar:5.5.1]
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126) [spring-security-web-5.5.1.jar:5.5.1]
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81) [spring-security-web-5.5.1.jar:5.5.1]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.5.1.jar:5.5.1]
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105) [spring-security-web-5.5.1.jar:5.5.1]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.5.1.jar:5.5.1]
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149) [spring-security-web-5.5.1.jar:5.5.1]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.5.1.jar:5.5.1]
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) [spring-security-web-5.5.1.jar:5.5.1]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.5.1.jar:5.5.1]
at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilterInternal(BasicAuthenticationFilter.java:178) [spring-security-web-5.5.1.jar:5.5.1]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring-web-5.3.9.jar:5.3.9]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.5.1.jar:5.5.1]
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103) [spring-security-web-5.5.1.jar:5.5.1]
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89) [spring-security-web-5.5.1.jar:5.5.1]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.5.1.jar:5.5.1]
at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90) [spring-security-web-5.5.1.jar:5.5.1]
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75) [spring-security-web-5.5.1.jar:5.5.1]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring-web-5.3.9.jar:5.3.9]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.5.1.jar:5.5.1]
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110) [spring-security-web-5.5.1.jar:5.5.1]
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80) [spring-security-web-5.5.1.jar:5.5.1]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.5.1.jar:5.5.1]
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55) [spring-security-web-5.5.1.jar:5.5.1]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring-web-5.3.9.jar:5.3.9]
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336) [spring-security-web-5.5.1.jar:5.5.1]
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211) [spring-security-web-5.5.1.jar:5.5.1]
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183) [spring-security-web-5.5.1.jar:5.5.1]
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358) [spring-web-5.3.9.jar:5.3.9]
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271) [spring-web-5.3.9.jar:5.3.9]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190) [tomcat-embed-core-9.0.50.jar:9.0.50]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) [tomcat-embed-core-9.0.50.jar:9.0.50]
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) [spring-web-5.3.9.jar:5.3.9]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring-web-5.3.9.jar:5.3.9]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190) [tomcat-embed-core-9.0.50.jar:9.0.50]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) [tomcat-embed-core-9.0.50.jar:9.0.50]
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) [spring-web-5.3.9.jar:5.3.9]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring-web-5.3.9.jar:5.3.9]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190) [tomcat-embed-core-9.0.50.jar:9.0.50]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) [tomcat-embed-core-9.0.50.jar:9.0.50]
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96) [spring-boot-actuator-2.5.3.jar:2.5.3]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring-web-5.3.9.jar:5.3.9]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190) [tomcat-embed-core-9.0.50.jar:9.0.50]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) [tomcat-embed-core-9.0.50.jar:9.0.50]
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) [spring-web-5.3.9.jar:5.3.9]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring-web-5.3.9.jar:5.3.9]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190) [tomcat-embed-core-9.0.50.jar:9.0.50]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) [tomcat-embed-core-9.0.50.jar:9.0.50]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) [tomcat-embed-core-9.0.50.jar:9.0.50]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) [tomcat-embed-core-9.0.50.jar:9.0.50]
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542) [tomcat-embed-core-9.0.50.jar:9.0.50]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143) [tomcat-embed-core-9.0.50.jar:9.0.50]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) [tomcat-embed-core-9.0.50.jar:9.0.50]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) [tomcat-embed-core-9.0.50.jar:9.0.50]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357) [tomcat-embed-core-9.0.50.jar:9.0.50]
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382) [tomcat-embed-core-9.0.50.jar:9.0.50]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) [tomcat-embed-core-9.0.50.jar:9.0.50]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893) [tomcat-embed-core-9.0.50.jar:9.0.50]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1723) [tomcat-embed-core-9.0.50.jar:9.0.50]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-9.0.50.jar:9.0.50]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-9.0.50.jar:9.0.50]
at java.lang.Thread.run(Thread.java:833) [?:?]
Caused by: com.collibra.marketplace.library.integration.exception.CollibraIntegrationLibraryException: {“message”:“There are one or more validation errors.”,“details”:“The attribute having ID/name ‘00000000-0000-0000-0001-000500000045’ of asset ‘AegGVp7JqrxDtJOKG8.oYBY>Signet Location>_iMFrgJ0-EeeyRZEB7IsL2A’ has an invalid value. Error: The attribute having value ‘null’ and values 'null is not valid. Either value or values must be defined.”}
at com.collibra.marketplace.library.integration.CollibraImportApiHelper.internalImportAssets(CollibraImportApiHelper.java:687) ~[collibra-integration-library-1.0.2.jar:1.0.2]
at com.collibra.marketplace.library.integration.CollibraImportApiHelper.internalImportAssetsInBatches(CollibraImportApiHelper.java:564) ~[collibra-integration-library-1.0.2.jar:1.0.2]
… 95 more
Caused by: com.collibra.marketplace.library.integration.exception.CollibraIntegrationLibraryException: {“message”:“There are one or more validation errors.”,“details”:“The attribute having ID/name ‘00000000-0000-0000-0001-000500000045’ of asset ‘AegGVp7JqrxDtJOKG8.oYBY>Signet Location>_iMFrgJ0-EeeyRZEB7IsL2A’ has an invalid value. Error: The attribute having value ‘null’ and values 'null is not valid. Either value or values must be defined.”}
** at** com.collibra.marketplace.library.integration.InternalCollibraLibraryExceptionMapper.logAndRethrowException(InternalCollibraLibraryExceptionMapper.java:94) ~[collibra-integration-library-1.0.2.jar:1.0.2]

Thanks,
Pratik

368 Messages

3 years ago

Hi Pratik,

This error is occurring because an SAPBO entity does not have the flag “hasLov” set to either true or false. This flag indicates whether or not this SAPBO entity has a list of values.

The SAPBO integration is taking the value provided by this flag and adding it as a “Categorical Data” attribute True/False value. But since this value is null, Collibra is failing to process it, thus leading to the failure of the whole Collibra import, thus leading to the failure of the sync.

A fix on the SAPBO integration is needed to avoid this scenario. With this fix, we’ll make sure not to add the “Categorical Data” attribute whenever SAPBO’s “hasLov” entity is null. Similar scenarios for other attributes are also possible, which we’d also need to fix.

We will publish this fix on Marketplace in the near future. We will also included other fixes (such as an upgrade of the log4j dependency due to CVE-2021-44228)

39 Messages

Hi @spring-team.collibra.com ,

Thanks for clarifying my doubt. I will remove the log4j dependency.

Can you please answer below questions :

  1. We are currently using Power-User access to get the metadata. Can you please let us know what minimum access is required to fetch the metadata from SAP BO using this integration.

  2. Why the integration is not ingesting the metadata for the subFolders which is inside the folders.
    Ex. Universe -> Folder -> Subfolder-> Measures ,Dimensions
    i can’t see the measurers and dimensions in Collibra which are inside subFolders.

Thanks,
Pratik

368 Messages

3 years ago

Hi Pratik,

An updated version of the SAPBO integration has just been published on Marketplace: https://marketplace.collibra.com/listings/sap-businessobjects-to-collibra-integration/
This fixes the issue you faced with regards to null valued SAPBO fields.

And to answer your questions:

  1. The SAPBO user needs to have enough rights to be able to use SAPBO’s REST API to extract universes and their items. It does not need permission to modify, create or delete universes and their items.

  2. Currently the integration only ingests metadata from top-level folders.

Loading...