Menü Einträge von UDT Handler werden beim Start von SAP nicht geladen
Michael Röthlisberger
Hallo zusammenIch habe folgendes Problem welches ziemlich mühsam ist. Wenn SAP gestartet wird und das Framework von Coresystems komplett initialisiert wurde dann fehlen immer alle einträge des UDT Handlers im Menü. Ich muss nun jedes mal nach dem Starten in die Administration den UDT Handler öffnen etwas in einem UDT Handler Fenster ändern, aktuallisieren und dann sind plötzlich wieder alle UDT Menü einträge vorhanden.
Dies ist jedoch ziemlich umständlich und sicherlich nicht im Sinne der Erfindung. Aktuell ist installiert: SAP B1 8.81 PL 10 und V3.50.16649 von Coresystems.
Ich habe noch 3 screenshots angehängt welche das Problem zeigen. Besten Dank für eure Hilfe.
Anders Olsson
Hi Michael,The cause of this problem is the fact that a custom parent menu is used. This could have been created by a separate add-on or customize rule. The problem here is that the startup order of addons is random: It could therefore happen that the UDT Handler tries to create the menu entries before the parent menu is created. The result is that they are not displayed at all.
I have created an internal ticket for this to be looked into for parent menus created using customize New Menu.
In the meantime I would propose the following workaround:
Create a new Optimizer Startup rule to create the UDT Handler menu entry. In the startup rule, create a timer with code that polls the SAP main menu to see if the parent menu has been created. If so, we create the new menu entry and stop the timer.
It's possible to show a UDT Handler from C# using the EasyFunction ShowUDTHandler command. The mandatory argument is the code of the UDT Handler. You can easily get the code by running this query:
SELECT Code, U_TableName, U_MenuDesc FROM [@COR_CUSTOM_UDTCONF] WHERE ISNULL(U_InActive,'') != 'Y'
I have attached a rule that will do the above. If you have more than one UDT Handler you want to open (to be created under the same parent menu), just add more menus in the rule.
I hope this helps!
Regards,
Anders
Anders Olsson
I can confirm that this issue will be fixed in customize 3.60.Michael Röthlisberger
Hi AndersI tried now the Code since 2 hours but I can't get it Work.
When I klick to open the ShowUDTHandler("00000012"); then I get the following error:
22/07/2012 11:14:43:515607 SystemMessage Error I Business Fehler in Befehl: "ShowUDTHandler". Weitere Informationen finden Sie in der Protokolldatei. # # MID=-1 BOID=-1 BO= UserID=Michael C:\Program Files (x86)\SAP\SAP Business One\SAP Business One.exe Version=8.81.319 Area= PID=3452 TID=3824 -1
Also I tried some oter UDTHandler Codes with the same result.
Here are the defined strings:
const string ParentMenuUID = "43544"; // UID of the popup menu created elsewhere
const string NewMenuUID = "60100"; // UID to assign the new menu entry
const string NewMenuValue = "Personal Arbeitszeit"; // The menu text
const string UDTHandlerCode = "00000014"; // Code of the UDT Handler to open
const int Timeout = 60; // Timeout in seconds where the rule should stop polling
The Item Menu will created correctly but when I click on the "Personal Arbeitszeit" then I get the error message above.
Thanks for your help.
Marcel Kieboom
Hi there,We still got these issues regarding the UDT menu items which are not visible.
I thought with an update to coresuite customize: 3.80.18271 the problem would be solved however the problem is still there.
Does anyone know how to solve this issue?
I have got two UDT menu items which are added to the main menu as well as two items on a business partner form.
All of the menu items appear only when I add a whitespace somewhere in the existing UDT handlers and update it.
So all of my colleagues are not able to use these created UDT.
Kind regards,
Marcel
Marcel Kieboom
Currently I receive an System.NullReferenceException on the ShowUDTHandler function.The menu item is added however calling the ShowUDTHandler fails.
Also my coresuitedebuglog consists of the following code when Coresuite is starting.
System.NullReferenceException: De objectverwijzing is niet op een exemplaar van een object ingesteld.
bij LayoutHelper.LD.ReplaceTextParam(String s, String langCode)
bij COR_Customize_UDTHandler.Data.ConfigData..ctor(String code, String nameId, String tableName, Dictionary`2 parameters, String filter, List`1 sourceFormTypes, String menuId, String menuFather, String menuDesc, String formDesc, String udtFormType, Boolean add, Boolean delete, Boolean update, String orderby, Boolean active, Boolean functionButton)
bij COR_Customize_UDTHandler.Data.ConfigData.RefreshCache()
bij COR_Customize_UDTHandler.Setup.PreInstall()
bij COR_Utility.COR_Customize_Start.PreInstall()
bij coresuiteFramework.Loader.Loader.Load(String currentDirectory)
Anyone seeing the problem?
Kind regards,
Marcel
0
Please sign in to leave a comment.
Comments
0 comments