Accessing Business Calendars from within IS

Hello,

this is a re-post of the question I posted in the forum “Flow and Java services”. But since I got no replies there I try here in the hope an MWS expert would clarify this.

We’d like to use a business calendar (BC) in our services. BCs are created and edited in MWS. There is an API fro working with them. The API even seems to be available in IS – in the sense that I can create a java service and compile it against the API.

But should such service work? Because, in my view, an IS is a different runtime environment than the MWS and hence might not have access to resources (database etc.) the MWS works with.

Could someone please shed light on this?

Thanks!

If you are referring to the business and user calendar management and date evaluation classes from the
com.webmethods.sc.calendar package then yes it should work in IS.

The MWS Library should be running inside of IS and providing the necessary infrastructure to make the com.webmethods.sc.calendar.* and com.webmethods.sc.directory.* APIs function inside of IS.

Eric, thank you for the quick reply. Yes, I meant those classes. I tried, it works.

One thing is still unclear to me. How would the IS runtime know which MWS instance should be used to retrieve the calendar data? As I understand it, it’ a common library which is able to run in the IS context and also in the MWS context. So it should have some configuration mechanism to adjust it to the particular environment.

It reads the MWS configuration information from the “CentralUsers” database that is configured in the IS JDBC Pools.

Is the code that reads the config a IS specific bootstrapping code (which tunes the library so that it can function)? And MWS has another bootstrapping code? (The library also works from within MWS, doesn’t it?) I’m just trying to understand how it works. If you have no time to reply you don’t have to because you already answered the main question.

Thanks!

hi fml2/Eric,

In the similar content , can you please share the jar files required to import com.webmethods.sc.directory pacakge in IS for directory services !!

Hi Rohit,

these jars should be present by default as they part of MWS CommonLib component.

When there are Fixes for this they will be applied by MWS_Fix for MWS server and by MWS_CL_Fix (or SCG_MWS_CL Fix) for all other components.

Regards,
Holger

@fml2 Basically, yes. IS has built-in init code that gets the JDBC connection details from the JDBC pool and passes those settings on the the MWSLibrary init which does the rest of the work to initialize what is needed to talk to the MWS database and the related MWS cluster.

When connected to a MWS database, CDS (via MWSLibrary) behaves very much like a MWS cluster instance.

Thank you Eric!

Just two more questions :slight_smile:

  1. What is CDS?

  2. Are there other components that are usually worked with from within MWS but that also get initialised (and hence can be used via API) from within the IS? I.e. user permissions etc.

  1. CDS is shorthand for the Common Directory Services API. This capability enables users defined in MWS to login to Integration Server.

  2. The capabilities provided inside IS by MWS are limited to the calendar apis and identity apis that manage MWS users/groups/roles.

You may refer to the “webMethods MWS Shared Services” section of the “CAF and My webMethods Server Java API Reference” documentation for the set of java APIs that are natively available in both the MWS runtime and the IS runtime.

Shouldn’t it be a little bit more? If I’m not mistaken, the services from WmMonitor which deliver information about process instances do take data level security settings into account which are defined in MWS. Hence the IS should somehow have access to these data. How does the IS access it?

The Optimize/Monitor products provide a UI front end for data level security in MWS. But , the persistence and usage of the same are all on the Integration Server side.

MWS and Integration Server serve different and complementary purposes. The goal has never been to duplicate all the capabilities provided by the MWS runtime into the Integration Server runtime.

Of course If there are areas that you or a customer would like to be improved in documentation or functionality, then you can make a proposal in brainstorm @ https://empower.softwareag.com/Products/FeatureRequestsInBrainstorm/default.asp for consideration in a future release.

Hi,

This subject interest me.

I’ve managed to create a Java service to inquiry some info about calendars.

Had to add:

  • to project classpath - basedir/Designer/eclipse/plugins/com.softwareag.sc.core_9.9.0.0000-0175.jar
  • to project classpath - basedir/common/lib/wm-calendar.jar
  • to code - import com.webmethods.sc.calendar.*;

Then this code worked:


String defaultCalendar = null;
		
		try {
			ICalendarSystem	 calendarSystem  = CalendarSystemFactory.getCalendarSystem();
			ICalendarManager calendarManager = calendarSystem.getCalendarManager();
							 defaultCalendar = calendarManager.getDefaultCalendarID();
		}
		catch (CalendarException e)
		{
			throw new ServiceException(e);
		}

Reply back if this helps you.

Best Regards

Hi,

might be worth to open a feature request in brainstorm for this to get easier access to these items.

Regards,
Holger

UPDATE for 10.5

Libraries have changed.

I’m using the following import statements:

import com.webmethods.sc.calendar.CalendarSystemFactory;
import com.webmethods.sc.calendar.ICalendar;
import com.webmethods.sc.calendar.ICalendarManager;
import com.webmethods.sc.calendar.ICalendarSystem;

Create and add the following library variables for your Designer UI project definitions:

  • MWS_SC_CORE : <SAG install directory>/Designer/eclipse/plugins/com.softwareag.sc.core_<some version>.jar
  • MWS_CALENDAR : <SAG install directory>/Designer/eclipse/plugins/com.softwareag.web.caf.mws.calendar_<some version>.jar

Your might need to check if your code still works on 10.5.

Best regards,