Friday, February 07, 2014

Example: JBoss and LDAP

JBoss 5.1.0.GA.

1. Change directory to server/default/conf and edit login-config.xml
2. Add a new block of application-policy, I put it before the "other" application-policy.



3.Under the WEB-INF directory, create jboss-web.xml and add a jboss-web definition.



4. Edit the web.xml file and add security configurations.



5. It is nice to see what is happening behind the door, so I enable the trace in the JBoss logging configuration. Edit server/default/conf/jboss-log4j.xml.

MyEclipse Enable Maven Dependencies in the Build Path

MyEclipse Enterprise Workbench

Version: 10.7

Of course, first disable the Maven4MyEclipse.

Then enable the WTP Deprecated. (as shown below).

Thursday, December 12, 2013

Search for ^M in vi

^M is ctrl+V then ctrl+M.

Thursday, January 03, 2013

Install DocService to Enable Edit Locally

Here a note which describes a solution for a user account with restricted rights:

The Edit Locally ActiveX will be installed based on following installation steps:

The browser will recognize that the KM DocService ActiveX has to be started. In case of the ActiveX isn't installed on the the PC, it will be downloaded from the KM server (...etc/docservice/docservice.cab) The browser will extract two DLLs from the docservice.cab file (docservice.dll and sapkmprogressplayer.dll) and register them on the local PC.

To see if the installation succeed you can open within the browser following dialog: Tools/Internet Options/Settings/View Objects, look for program file SAP KM DocService Control.

Registry keys in following areas will be created:

HKEY_CLASSES_ROOT:
HKCR\AppID\{5F8983A6-347C-46B9-BA7A-1B87E5DAE0BC}
HKCR\ProgressPlayerMod.ProgressPlayer
HKCR\ProgressPlayerMod.ProgressPlayer.1
HKCR\CLSID HKCR\TypeLib

HKEY_LOCAL_MACHINE:
HKLM\Software\Microsoft\Windows\CurrentVersion\ModuleUsage\C:/WINNT/Down Downloaded Program Files/DocService.dll
HKLM\Software\Microsoft\Code Store Database\Distribution Units\

When finishing these steps successfully the installed version can be located within the browser dialog Tools/Internet Options/Settings/View Objects SAP KM DocService Control and the KM DocService will start loading the document content from the KM server and starting the corresponding application for editing.

With restricted user accounts e.g. no access rights to create registry keys in the area of HKCR or HKLM etc., which lets the described installation fail, following installation procedure leads to success: Register the needed DLLs manually on the PC (e.g. via a shell command script) with a user account having enough access rights.

1. Create an installation folder (don't use /windows/system32) on the PC and copy the DLLs (docservice.dll and sapkmprogressplayer.dll) to it (extract them from docservice.cab with a tool e.g. winzip).
2. Open a command shell on this installation folder.
3. Unregister possible existing versions with the following command: "regsvr32 docservice.dll /U " and "regsvr32 sapkmprogressplayer.dll /U "
4. Register the both DLLs with: "regsvr32 docservice.dll" and "regsvr32 sapkmprogressplayer.dll "
5. If the two registration steps fail check the permissions to write into the system registry.
6. The installation folder do not need special permissions, the linkage to the DLLs will be done via the system registry.
7. Additionally the following setting is mandatory to succeed the installation: Disable the "ActiveX Version Check" function within the KM Configuration SystemAdministration->SystemConfig->KnowledgeManagement-> ->Configuration->ContentManagement->Utilities->Editing->LocalEditing-> ActiveX Version Check (Uncheck the checkbox)

Setting a different TEMP directory: In cases that it is problematic to use the standard %TEMP% directory, setting the environment variable SAPKM_USER_TEMP pinpointing to a corresponding directory path (e.g. X:\SHARES\USERS\xxx\CheckedOutDocuments) will be also supported. If the access to that directory fails the standard %TEMP% directory will be used as fallback.

Wednesday, September 26, 2012

EP Version

There are official ways to obtain the version and release number of SAP portal. Here is a quick and dirty way.

View the source code of the logon page and check out the first line.

If it is 7.1.8.0.1, it means EP version 7.1, service pack 8, patch 1.

Wednesday, July 11, 2012

Hibernate Polymorphism

ClassOne and its sub-class ClassOneDotOne.

If you only want ClassOne, not ClassOneDotOne in your Hibernate query results, you will need to define
  1. if hbm.xml,
  2. if annotation, @hibernate.class polymorphism="explicit"
Yes, it is that simple.

Friday, June 22, 2012

Objective-C First Impression

I don't like the NS prefix. Ugly.

The Protocol is the Interface in Java. Here is the key sentence to understand it.
When you implement the methods of a protocol in one of your classes, your class is said to conform to that protocol.
 #import is to import a header file, not just a class or interface. Preferred over #include.

Java class has everything in one .java file. Objective-C class has its interface portion in a .h file, its implementation portion in a .m file. My understanding so far is that it is not possible to initialize any member variables in the .h file. Not mention any static final variables.

Type id is like the class Object in Java.

OK, if not a type id for a variable, it is so-called strongly typed, you need to have * at the head of the variable name. Ugly.

So the class method is the static in Java. Seems no concept of Constructor so one class method to create new instances is always necessary.



Friday, April 27, 2012

Let ApplicationContext Pick up Properties by Runtime Environment

In one of my recent projects, I needed to point to different data sources by run-time environment.

In the web container, we can define jndi data sources. But what about in the batch environment?

I have heard of something like dummy jndi but I have some problem trying to understand it. So I figured out another way.

In the applicationContext.xml file, I used propertyConfigure to define location at classpath:application.${runtime}.properties.

Then I created two properties file, application.development.properties and application.production.properties.

Then in the applicationContext.xml file, I just pick up the properties.

Then in the command line, I just need to specify the "runtime" variable by using -Druntime=development or -Druntime=production.

Done.

Note: if in applicationContext we need a value "\\abc\aaa", we need to define it in the properties file as "\\\\abc\\aaa".

Tuesday, March 27, 2012

Portal Drive

A nice tool to map KM folders into Windows PC/server.

Download path:

SAP Software Download Center -> Support Packages and Patches -> N -> SAP NetWeaver -> (Your SAP Portal Version/Release) -> Entry by Component -> Frontend

I downloaded 4.4 and 4.5. I installed 4.5.

Check if WebDAV is enabled. System Administration -> System Configuration -> Knowledge Management -> Content Management -> Protocols -> WebDAV

The Enable WebDAV Server should be checked on.

Configuration url

http://:57100/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/documents/

Done.

Thursday, February 02, 2012

Unlock a document in KM

Content Administration -> KM Content

select the locked documents



from the Selection drop down menu, select unlock.

Thursday, September 08, 2011

EP Upgrade from 7.0 SP 18 to 7.01 SP 8

After the upgrade, I found a new deployment would only be effective after the SAP reboot.

Download NetWeaver Developer Studio 7.0

To download NWDS 7.0 or 7.01, search by JIDE* on SAP support portal.

Wednesday, October 20, 2010

SAP - How to make IScheduleTask configurable

cc.xml co.xml

SAP - dist/PORTAL-INF/config

We are not using NWDI. We use a third-party source code management system.

The dist/PORTAL-INF/config folder was checked into the repository. Later when we did a quick PAR upload, NWDS complained not able to delete the folder.

Tried to find a way to prevent it being checked in, but found no solution.

Finally I found if I define this folder as Derived, it won't give me any trouble.

Thursday, September 16, 2010

Java Write Text into a Image

graph = image.getGraphics();

graph.setColor(aColor);
graph.setFont(aFont);
graph.drawString(text, x-position, y-position);

Friday, September 10, 2010

Some small consideration when design web applications

Sometimes I think to myself, what makes web application different from others? I find a real case when I review a real application.

This application has an edit page, on which user can select "Y" or "N" from a drop list. It also define keys for "Y" and "N" in a message properties file and this application is designed for English only.

I think there are at least two small places that the designer can do better.
  1. use radio button instead of drop down list, this saves one click.
  2. still put real messages in properties files but no need to treat a "Y"/"N" choice as a real message
The reason to put real messages in properties files even for an English only application is to allow business easily change those messages during the whole application life cycle. It will still be an application level change, but you would have much more confidence that a regression test will not be needed.

Monday, August 16, 2010

SAP Portal - Multiple Node Installation of a KM Scheduler Task

In an environment with more than one CM system, you must assign one (any) CM system in the cluster to each scheduler task.

Do not assign a scheduler task to more than one CM system at the same time. In the configuration of a scheduler task, there must be only one entry in the CM Systems parameter.

To balance the load, we recommend assigning all scheduler tasks to one dedicated CM system that runs separate from the load balancer. This separation removes the load caused by running the scheduler tasks from the other nodes and makes them available solely for your users.

Tuesday, July 27, 2010

DOS - Current User Path

%USERPROFILE% = C:\Documents and Settings\{current user}

Wednesday, June 23, 2010

Tips - How to Rename the Suffix of a Group Files on Windows

Very simple, use cmd and go to the directory,

rename *.abc *.xyz

DONE.

Thursday, June 10, 2010

Have fun! World Cup is coming.

Last month a world wide telephone survey was conducted by the U.N.

There was only one question asked: "Would you please give your honest opinion about solutions to the food shortage in the rest of the world?"

This survey was a HUGE failure because of the followings,

1. In Eastern Europe they didn't know what "honest" meant.
2. In Western Europe they didn't know what "shortage" meant.
3. In Africa they didn't know what "food" meant.
4. In China they didn't know what "opinion" meant
5. In the Middle East they didn't know what "solution" meant
6. In South America they didn't know what "please" meant
7. In the USA they didn't know what "the rest of the world" meant
8. In Australia they hung up as soon as they heard the Indian accent.