cancel
Showing results for 
Search instead for 
Did you mean: 

Consume S4 Hana Cloud events through Event Mesh with CAP locally (in Hybrid Mode)

Trulov
Participant
0 Kudos

Hi experts,

as the title says im trying to setup a local test environment for consuming the Event Mesh service in CAP.

In my current setup, an S4 HANA Cloud instance is already connected to an Event Mesh client via AMQP, which is consumed by the Integration Suite. I would now like to receive this queue in a CAP service as well.

The funny thing is: As soon as I deploy my app, I receive the events flawlessly. But as soon as I want to test it locally, the events are not getting fetched anymore.

I tried to configure hybrid and production profile exactly the same. What am I missing or overlooking?

Here is my full project config (I have no .cdsrc):

Heres my EM binding, from .cdsrc-private.json:

Thank you in advance and BR

Tom

View Entire Topic
david_kunz2
Advisor
Advisor
0 Kudos

Hi truloff ,

To receive events from your local machine you need to:

1. Set the kind to `enterprise-messaging-shared` because that will utilize AMQP connections. Web hooks wouldn't reach your local endpoint.

2. make sure that no other apps are connected to your queue, otherwise they could "steal" your messages. You could for example choose a different queue name for local development.

Does this help?

Best regards,

David

Trulov
Participant
0 Kudos

Hi david.kunz2,

thank your for your reply!

1. I'm starting my local server in "hybrid" profile. As you can see in the first screenshot, the kind is actually set to 'enterprise-messaging shared'. In fact I want to use AMQP connections for production as well (which is actually working in the cf-deployed service).

2. I have ensured, that my MTA-service was undeployed before local testing. I also checked the queue in the Event Mesh Cockpit, which has still messages in it (I attached a third screenshot with the respective queue). Also I noticed that on every redeployment of the MTA service, there will be a new queue created in the Event Mesh client, so I set a fix name for my queue, as you can see in the first screenshot.

So I think I have ensured all your points and I don't know how to approach the subject any further. And as I said, I don't understand, why the deployed service works fine. I'm not behind a Proxy or in VPN etc.

If you have any further ideas, hints or questions, please let me know.

Thank you again for your quick reply and Best Regards

Tom

david_kunz2
Advisor
Advisor
0 Kudos

Thanks for the clarification.

Did you also provide the exact credentials in your local development as for your deployed app? Could you check that the queue is also created when you start your local server (make sure to use a distinct name)? Otherwise, there shouldn't be any difference in the local/deployed app.