About Event Handling in user Defined Form (In Addon)
Hi Every One,
Can Anyone Give Me Notes On EventHandling in forms That are Disgened using Sdk UIAPI .Like Button event ,application event, menuevent... etc with saple code
Regards
Srinivas
Hi Sura,
Hope this helps. C# sample code.
// SAP MANAGE UI API 2005 SDK Sample
// File: CatchingEvents.cs
// Copyright (c) SAP MANAGE
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
// BEFORE STARTING:
// 1. Add reference to the "SAP Business One UI API"
// 2. Insert the development connection string to the "Command line argument"
// 1.
// a. Project->Add Reference...
// b. select the "SAP Business One UI API 2005" From the COM folder
// 2.
// a. Project->Properties...
// b. choose Configuration Properties folder (place the arrow on Debugging)
// c. place the following connection string in the 'Command line arguments' field
// 0030002C0030002C00530041005000420044005F00440061007400650076002C0050004C006F006D0056004900490056
using System;
using System.Windows.Forms;
class CatchingEvents {
// This parameter will use us to manipulate the
// SAP Business One Application
private SAPbouiCOM.Application SBO_Application;
private void SetApplication() {
// Use an SboGuiApi object to establish connection
// with the SAP Business One application and return an
// initialized appliction object
SAPbouiCOM.SboGuiApi SboGuiApi = null;
string sConnectionString = null;
SboGuiApi = new SAPbouiCOM.SboGuiApi();
// by following the steps specified above, the following
// statment should be suficient for either development or run mode
sConnectionString = System.Convert.ToString( Environment.GetCommandLineArgs().GetValue( 1 ) );
// connect to a running SBO Application
SboGuiApi.Connect( sConnectionString );
// get an initialized application object
SBO_Application = SboGuiApi.GetApplication( -1 );
public CatchingEvents() {
// set SBO_Application with an initialized application object
SetApplication();
// events handled by SBO_Application_AppEvent
SBO_Application.AppEvent += new SAPbouiCOM._IApplicationEvents_AppEventEventHandler( SBO_Application_AppEvent );
// events handled by SBO_Application_MenuEvent
SBO_Application.MenuEvent += new SAPbouiCOM._IApplicationEvents_MenuEventEventHandler( SBO_Application_MenuEvent );
// events handled by SBO_Application_ItemEvent
SBO_Application.ItemEvent += new SAPbouiCOM._IApplicationEvents_ItemEventEventHandler( SBO_Application_ItemEvent );
// events handled by SBO_Application_ProgressBarEvent
SBO_Application.ProgressBarEvent += new SAPbouiCOM._IApplicationEvents_ProgressBarEventEventHandler( SBO_Application_ProgressBarEvent );
// events handled by SBO_Application_StatusBarEvent
SBO_Application.StatusBarEvent += new SAPbouiCOM._IApplicationEvents_StatusBarEventEventHandler( SBO_Application_StatusBarEvent );
private void SBO_Application_AppEvent( SAPbouiCOM.BoAppEventTypes EventType ) {
// the following are the events sent by the application
// (Ignore aet_ServerTermination)
// in order to implement your own code upon each of the events
// place you code instead of the matching message box statement
switch ( EventType ) {
case SAPbouiCOM.BoAppEventTypes.aet_ShutDown:
SBO_Application.MessageBox( "A Shut Down Event has been caught" + Environment.NewLine + "Terminating Add On...", 1, "Ok", "", "" );
// Take care of terminating your AddOn application
System.Windows.Forms.Application.Exit();
break;
case SAPbouiCOM.BoAppEventTypes.aet_CompanyChanged:
SBO_Application.MessageBox( "A Company Change Event has been caught", 1, "Ok", "", "" );
// Check the new company name, if your add on was not meant for
// the new company terminate your AddOn
// If SBO_Application.Company.Name Is Not "Company1" then
// Close
// End If
break;
case SAPbouiCOM.BoAppEventTypes.aet_LanguageChanged:
SBO_Application.MessageBox( "A Languge Change Event has been caught", 1, "Ok", "", "" );
break;
private void SBO_Application_MenuEvent( ref SAPbouiCOM.MenuEvent pVal, out bool BubbleEvent ) {
// in order to activate your own forms instead of SAP Business One system forms
// process the menu event by your self
// change BubbleEvent to False so that SAP Business One won't process it
BubbleEvent = true;
if ( pVal.BeforeAction == true ) {
SBO_Application.SetStatusBarMessage( "Menu item: " + pVal.MenuUID + " sent an event BEFORE SAP Business One processes it.", SAPbouiCOM.BoMessageTime.bmt_Long, true );
// to stop SAP Business One from processing this event
// unmark the following statement
// BubbleEvent = False
else {
SBO_Application.SetStatusBarMessage( "Menu item: " + pVal.MenuUID + " sent an event AFTER SAP Business One processes it.", SAPbouiCOM.BoMessageTime.bmt_Long, true );
private void SBO_Application_ItemEvent( string FormUID, ref SAPbouiCOM.ItemEvent pVal, out bool BubbleEvent ) {
// BubbleEvent sets the behavior of SAP Business One.
// False means that the application will not continue processing this event.
BubbleEvent = true;
if ( pVal.FormType != 0 ) {
// the message box form type is 0
// I chose not to deal with events triggered by a message box
// every event will open a message box with the event
// name and the form UID how sent it
SAPbouiCOM.BoEventTypes EventEnum = 0;
EventEnum = pVal.EventType;
// To prevent an endless loop of MessageBoxes,
// we'll not notify et_FORM_ACTIVATE and et_FORM_LOAD events
if ( ( EventEnum != SAPbouiCOM.BoEventTypes.et_FORM_ACTIVATE ) & ( EventEnum != SAPbouiCOM.BoEventTypes.et_FORM_LOAD ) ) {
SBO_Application.MessageBox( "An " + EventEnum.ToString() + " has been sent by a form with the unique ID: " + FormUID, 1, "Ok", "", "" );
private void SBO_Application_ProgressBarEvent( ref SAPbouiCOM.ProgressBarEvent pVal, out bool BubbleEvent) {
SAPbouiCOM.BoProgressBarEventTypes EventEnum = 0;
EventEnum = pVal.EventType;
BubbleEvent = true;
SBO_Application.MessageBox( "The event " + EventEnum.ToString() + " has been sent", 1, "Ok", "", "" );
private void SBO_Application_StatusBarEvent( string Text, SAPbouiCOM.BoStatusBarMessageType MessageType ) {
SBO_Application.MessageBox( @"Status bar event with message: """ + Text + @""" has been sent", 1, "Ok", "", "" );
Regards,
Jay.
Similar Messages
-
Base Document and Target Document Menu for User Defined Forms
Hi Experts,
I am facing a problem regarding enabling the menu "Base Document" Menu UID="5898" and "Target Document" Menu UID="5899" . Both of these menu Items are not enabled for User Defined Form .Actually I have developed a user Defined form for Purchase Requisition that targets Purchase Order . User can Copy Line Items From Purchase Requisition to Purchase Order and I am tracking the DocEntry and LineId of PR into PO Item's using UDS . I want to Open this PR Document upon Click of BaseDocument Menu .I have tried all the options. I have used Form.enableMenu() method also . But none of those options work for this menu . I ahve also searched about this problem i this forum also but there is no soultion so far posted regarding this.
I really want to confirm whether it is possible or not using SDK for User Defined Forms . Is there any possiblity of implementing any WorkArounds and Having this feature implemented .
I am Expecting a true solutions as this Forum has so many Experienced Experts .
Thanks and Regards,
Pooja Singh.Hello Poja,
It is not possible, because the requested menus are depending on the forms, and the are not exists,
WorkAround:
add the menus to the User Defined forms, and use right click to activate them:
oForm.Menu.Add("5898", "Base Document", BoMenuType.mt_STRING, oForm.Menu.Count)
oForm.EnableMenu("5898", True)
And hanle the menu event when you clicked them and the form is your custom form.
Regards,
János -
Opening a Crystal Report in B1 8.8 in a User Defined Form representing UDO
Hi Experts,
Is it possible to open a Crystal Report from a User Defined Form representing my UDO?
I had developed a 'Vendor Quotation' UDO and its User Defined Form
I wanted to show the report while clicking the Preview menu in SAP B1 8.8 toolbar.
I have created the Crystal report and used the record selection as {@OVQT.DocEntry} = {DocKey@}
Please help
Also, is it possible to add Print layout and assign a default Print layout to this User Defined Form?
Thanks in advance
Regards
ArunHi,
I also face the same problem. I make a master type using UDO. But i want to print it.
In my opinion ( i haven't tried this way ). If we make a UDO ( master or document type ) , we will find the docentry and object field in our UDT. Both of these will connect between SAP form and Crystal report. In crystal report we select the tmsp_doclinetypelayout. It is a store procedure which will connect between SAP form and CR. Before that try to modify this SP by adding the udo object.
Fyi, if i'm not mistake dockey is connected to docentry SAP form.
Thanks
regards
bodhi86 -
User Defined Form problem...
Hi,
I have the Item Master Data form opened with the User Defined Form opened.
Now the Form has the focus and I'm trying to get an User Defined Item control on the User Defined Form
but it says Form not found and I did try to select it or to use the GetForm with the "-" + TypeEx of the current form but nothing seems to work.
Any idea how I can switch from the form to the User Defined Form on which I need to get the control ?
I havfe to mention that I'm trying it on a second opened Item Master Data form so the FormTypeCount = 2 Could it be a BUG ?
Edited by: Marc Roussel on May 28, 2009 4:20 PMif (mo.ItemUID.IndexOf("U_") != -1)
oCurrentForm.PaneLevel = 1; // I tought this could help since the UDF form has a pane level of 1 but it does nothing.
oCurrentForm = _SBOApplication.Forms.GetForm("-" + FormType.ToString(), FormTypeCount);
// I get a Form not found here............ HUH WHY ??????? It's there and visible. I DON'T UNDERSTAND...
// and FormType is really "150" which is the actual form opened...... -
Give authorisation To User defined form
How to give authorisation to User defined form
Regards,
Pravinhi,
After you have created the additional Authorization in Additional Authorization Creator window you still need to define the authorization in the Authorization Window located at Administration -->> System Initialization -->> Authorizations -->> General Authorizations. then select your desired user and assign your desired Authorization.
regards,
Fidel -
Type property for user defined forms
Hi,
When creating a user defined form using Screen Painter,
how can we assign Type property for the form so that we are sure it will not clash with system forms in the future?
Thanks,
Satish.Thanks Juli
Just one last question. It it be alright to assign a text value(Partner namespace in front) for the form type property.Does it have any drawbacks?
Thanks,
Satish -
Regarding query generation to user defined forms
Hi all,
i had created user defined form with some fields and tables
tables in the sense matrix
i had entered the data in that table
and added that data
after that i came back to that form and used the fields that are below the table to calucalate the maximum and minimum from the columns of matrix
so to get the data of that particular form only i used the $ command to extract data depending on the report number
but iam unable to get the result
any one help me regarding this
it is required urgent
Thanks And Regards
sravanth.smSravanth,
Let's see if I can help you.
Assume your form's title table is called @TITLE and the matrix table is called @ROWS. In the form's title you have the record key DocEntry. In the Matrix you have a column COLUMN from were you are going to get some value. ok?
Maximum of the column
SELECT Max(T0.COLUMN) FROM [dbo].[@ROWS] T0 WHERE T0.DocEntry=$[@TITLE.DocEntry]
To get the minimum, just use the Min() function.
Regards,
Vítor Vieira -
SQL Query for user defined form
Hi experts,
I want query to update some fields in my user defined form using stored procedure on clicking of ADD button.
Explanation:
I have User Defined form call "DC request" with Object 'DCLM'..On click of Add button, it is saving my record info into the form. But in one field if value in not entered then it is saving as 'Null'.
Addon is already made, can not change in coding.
I want to update this field with '0' value through query in stored procedure on click of Add Button. Can anyone help me out to achieve this.
ThanksHi Team Bone.
Please try below Transaction Notification which will Restrict User to ADD if Field_Name is NULL and then User Need to Enter ZERO i.e. 0 for Adding.
IF @OBJECT_TYPE = 'DCLM' AND (@TRANSACTION_TYPE = 'A' or @TRANSACTION_TYPE = 'U')
BEGIN
If Exists (Select T0.DocEntry from [Table_Name] T0 Where ( T0.Field_Name is null OR T0.Field_Name = ' ' ) AND T0.DocEntry = @lisT_of_cols_val_Tab_del )
begin
SET @error = -100000
SET @error_message = 'Filed_Name is NULL then So, Please enter ZERO Value i.e. 0 in Filed_Name'
End
End
Please change Table_Name and Field_Name with with UDO field.
Hope this help
Regards::::
Atul Chakraborty -
Include the COPY TO Option in User Define form
Hi Experts
How can we include the COPY TO Option in User Define form
Thanks In Advance
A S VAMSI KRISHNAHi,
In SAP B1 i think there is no default functionality for copy to in user defined form. As Parminder said you can use the control button combo and write your own method for populating data.
Regards
Arun -
Problem When Try to add Master data record for User define form
Hi,
I have made one user define form. And assign UDO and fields proerly in form.
But when I try to add the record from the form it will give me error
Invalid Code [Operation Master -Code] [Message 173-36]
I have already bind the code field of the table to one field in the screen painter.
Please give me the reply.
Regards,
Gunjan Shukla.Dear Shukla
Can you please try to do the binding in the code (after loading the from).
Doing that, do you still have the problem?
Best regards,
Miki -
hi
i am trying to develop a event handler for all the attributes of a resource that when user is modified is attributes. he need get a notification that paritcular attribute or u r data is modified..
actually i have seen that they have return adapter for each attribute but dont want so many adapters to be writtten so i want to develop a event handler for that scenario... please provide the sample code so that i can modifie or re coding it....
thanks
avinashHi,
I had created one dissconnected resource and one application form for it... the user had filled the form of that resource and submitted and when he want to update the form once again the event handler should be tirrger and paritcular attribute should be update and he had to send email notification that attribute is changed...
here is once thing that if he had change numberof attributes at a time but we have to send only one email notification for all the attributes...
regards
avinash -
Error management in an event handler in a powershell form
Hi guys
I wrote a powershell form using event handler. It ask for a name and a IP adress and other things
In the event handler,
- if the user leave the name blank, I open a message box saying it should not be empty
- if the user enter a wrong ip adress, I open a message box saying it should be like x.x.x.x
If both occurs, it displays 2 message box.
But I would like to display only the first message box of the first error and then exit the handler, to avoid displaying many messages.
How to exit from a handler and stay in the form (not like the cancel button handler which close the form with a form.close() statement)
I tried break statement or exit without success
thanks
MLHi guys
This is the code I wrote today. I may give also the full code of the interface, but it reach 1300 lines.
$Retry variable lets me control the first error in the interface to display the message box.
It's not finished yet, I need to add something like "formclose" if $Retry is false.
I use semicolons because for me, it's easier to read :-).
I'm sorry I don't understand the explanation in your link.
http://msdn.microsoft.com/en-us/library/system.componentmodel.canceleventargs%28v=vs.110%29.aspx
What would happen if I type
$_.Cancel = $true
instead of $Retry = 1, it will exit immediately from the handler ? I can't try now, I'm came back home
Thanks
ML
function IsIP($value) {
$match = "\b(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}\b"
return $value -match $match
function IsURL([string]$Url)
if($Url -eq $null) {return $false}
else {return $Url -match "^(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*"+`
"(:(0-9)*)*(\/?)([a-zA-Z0-9\-\.\?\,\'\/\\\+&%\$#_]*)?$"}
function toBinary ($dottedDecimal){
$dottedDecimal.split(".") | %{$binary=$binary + $([convert]::toString($_,2).padleft(8,"0"))}
return $binary
#Provide Custom Code for events specified in PrimalForms.
$handler_WinFactoryGUI_Load=
#TODO: Place custom script here
$HardwareCombo.SelectedIndex = 0 # Default values of Combo boxes
$WindowsEditionCombo.SelectedIndex = 0
$ServerName.Select()
$handler_cancel_Click=
#TODO: Place custom script here
$WinFactoryGUI.Close()
$Handler_Server_Info_Leave=
#TODO: Place custom script here
$Handler_DNS_Config_Leave=
#TODO: Place custom script here
$Handler_GenerateIso_Click=
#TODO: Place custom script here
$Retry = $false
# ServerName
$ServerName2Install = $ServerName.Text
if ($ServerName2Install -eq "") {$MSg = "Server name is missing"; $Retry = $true}
# Windows Version
$TabWindowsVersion = @("2008R2STD","2008R2ENT","2008R2DTC","2012R2STD","2012R2DTC")
$i = $WindowsEditionCombo.SelectedIndex
$WindowsVersion = $TabWindowsVersion[$i]
if (! $Retry) {
# OperIP : mandatory
$OperIP = $OperIP1.Text + "." + $OperIP2.Text + "." + $OperIP3.Text + "." + $OperIP4.Text
$OperMask = $OperMask1.Text + "." + $OperMask2.Text + "." + $OperMask3.Text + "." + $OperMask4.Text
$DefaultGateway = $Gateway1.Text + "." + $Gateway2.Text + "." + $Gateway3.Text + "." + $Gateway4.Text
$Msg = ""
$OperIPOK = IsIP($OperIP); if (! $OperIPOK) { $Msg = $Msg + "OperIP is invalid`n";$Retry = $true }
$OperMaskOK = IsIP($OperMask); if (! $OperMaskOK) { $Msg = $Msg + "OperMask is invalid`n";$Retry = $true }
$DefaultGatewayOK = IsIP($DefaultGateway); if (! $DefaultGatewayOK) { $Msg = $Msg + "DefaultGateway is invalid`n";$Retry = $true}
$ipBinary = toBinary $OperIP
$smBinary = toBinary $OperMask
#how many bits are the network ID
$netBits=$smBinary.indexOf("0")
#validate the subnet mask
if(($smBinary.length -ne 32) -or ($smBinary.substring($netBits).contains("1") -eq $true)) {$Msg = "Subnet Mask is invalid!";$Retry = $true}
else {
#validate that the IP address
if(($ipBinary.length -ne 32) -or ($ipBinary.substring($netBits) -eq "00000000") -or ($ipBinary.substring($netBits) -eq "11111111")) {$Msg = "IP Address is invalid!";$Retry = $True}
# TechIP : optional
if (!$Retry) {
if (($TechIP1.Text -eq "") -and ($TechIP2.Text -eq "") -and ($TechIP3.Text -eq "") -and ($TechIP4.Text -eq ""))
$TechIP = "0.0.0.0"
$TechMask = "0.0.0.0"
else
$TechIP = $TechIP1.Text + "." + $TechIP2.Text + "." + $TechIP3.Text + "." + $TechIP4.Text
$TechMask = $TechMask1.Text + "." + $TechMask2.Text + "." + $TechMask3.Text + "." + $TechMask4.Text
$TechIPOK = IsIP($TechIP)
if (! $TechIPOK) { $Msg = $Msg + "TechIP is invalid`n";$Retry = $true }
$TechMaskOK = IsIP($TechMask)
if (! $TechMaskOK) { $Msg = $Msg + "TechMask is invalid`n";$Retry = $true }
# DNS domain
if (! $Retry) {
$DnsDomainSrv2Install = $DnsDomain.Text
if ($DnsDomainSrv2Install -eq "") {$Msg = $Msg + "DNS Domain is invalid`n";$Retry = $true }
# DNS Suffixes
if (! $Retry) {
$DnsSuffixes2Install = $DnsSuffixes.Text.replace("`n",":")
if ($DnsSuffixes2Install[$DnsSuffixes2Install.Length] -eq ":") {
$DnsSuffixes2Install = $DnsSuffixes2Install.Substring(0,$DnsSuffixes2Install.Length-1)
if ($DnsSuffixes2Install -eq "") {$Msg = $Msg + "DNS suffixes list is invalid`n";$Retry = $true }
# DNS adresses
if (! $Retry) {
if ($DNSIP11.Text -ne "") {
$DNSIP1 = $DNSIP11.Text + "." + $DNSIP12.Text + "." + $DNSIP13.Text + "." + $DNSIP14.Text
$DNSIP1POK = IsIP($DNSIP1) ; if (! $DNSIP1POK) { $Msg = $Msg + "DNS IP 1 is invalid`n";$Retry = $true } else { $DNSAddrList = $DNSIP1}
if ($DNSIP21.Text -ne "") {
$DNSIP2 = $DNSIP21.Text + "." + $DNSIP22.Text + "." + $DNSIP23.Text + "." + $DNSIP24.Text
$DNSIP2POK = IsIP($DNSIP2) ; if (! $DNSIP2POK) { $Msg = $Msg + "DNS IP 2 is invalid`n";$Retry = $true } else {$DNSAddrList = $DNSAddrList + ":" + $DNSIP2}
if ($DNSIP31.Text -ne "") {
$DNSIP3 = $DNSIP31.Text + "." + $DNSIP32.Text + "." + $DNSIP33.Text + "." + $DNSIP34.Text
$DNSIP3POK = IsIP($DNSIP3) ; if (! $DNSIP3POK) { $Msg = $Msg + "DNS IP 3 is invalid`n";$Retry = $true } else {$DNSAddrList = $DNSAddrList + ":" + $DNSIP3}
if ($DNSIP41.Text -ne "") {
$DNSIP4 = $DNSIP41.Text + "." + $DNSIP42.Text + "." + $DNSIP43.Text + "." + $DNSIP44.Text
$DNSIP4POK = IsIP($DNSIP4) ; if (! $DNSIP4POK) { $Msg = $Msg + "DNS IP 4 is invalid`n";$Retry = $true } else {$DNSAddrList = $DNSAddrList + ":" + $DNSIP4}
else { $Msg = $Msg + "At least, one Dns server IP must be provided`n";$Retry = $true }
# Hardware
$TabHardware = @("VM","HP","MS")
$i = $HardwareCombo.SelectedIndex
$Hardware = $TabHardware[$i]
# vCenter
$vCenterName = "parameter.not.used"
# Flags
#""_;_;_;1;_;http://m011ML-SCCM.pocx86.tstwinx.net:8530;1"""
if (! $Retry) {
$Flag = ""
if ($CheckBoxPED.Checked -eq $true) {$Flag = $Flag + "1;"} else {$Flag = $Flag + "_;"}
if ($CheckBoxOmnivision.Checked -eq $true) {$Flag = $Flag + "1;"} else {$Flag = $Flag + "_;"}
if ($CheckBoxBackup.Checked -eq $true) {$Flag = $Flag + "1;"} else {$Flag = $Flag + "_;"}
if ($CheckBoxNagiosInstall.Checked -eq $true) {$Flag = $Flag + "1;"} else {$Flag = $Flag + "_;"}
if ($CheckBoxInstallSRM.Checked -eq $true) {$Flag = $Flag + "1;"} else {$Flag = $Flag + "_;"}
$WsusUrl2Configure = $WsusUrl.Text;
if ($WsusUrl2Configure -eq "") {$WsusUrl2Configure = "_"}
else {
$WsusURLOK = IsUrl($WsusUrl2Configure)
if (! $WsusURLOK) {$Msg = $Msg + "WSUS Url is Invalid`n";$Retry = $true }
$Flag = $Flag + $WsusUrl2Configure
if ($CheckBoxHPSA.Checked -eq $true) {$Flag = $Flag + ";1"} else {$Flag = $Flag + ";_"}
$Flag = """""$Flag"""""""
if ($Retry) {[System.Windows.Forms.MessageBox]::Show($Msg,"Status",0);$Msg = ""}
else { $WinFactoryCall = "start-process ""cmd.exe"" ""/c .\GenBootImage.cmd "
$WinFactoryCall = $WinFactoryCall + $ServerName2Install + " " + $WindowsVersion + " " + $OperIP + " " + $OperMask + " " + $DefaultGateway + " " + $TechIP + " " + $TechMask
$WinFactoryCall = $WinFactoryCall + " " + $DNSAddrList + " " + $DnsDomainSrv2Install + " " + $DnsSuffixes2Install + " " + $Hardware + " " + $vCenterName + " " + $Flag + " -wait"
write-host $WinFactoryCall
$OnLoadForm_StateCorrection=
{#Correct the initial state of the form to prevent the .Net maximized form issue
$WinFactoryGUI.WindowState = $InitialFormWindowState
ML -
Document Numbering Issue in user defined form
Dear All,
There is UDO with manageseries = true. Series and DocNum fileds are binded to database (Combobox And Edittext). I can easly get next number and assign to Docnum field while selecting series from Combobox. The problem is when i choose series diferent than default and add document i get warning message "The actual posted document number is :XXXXXXX". No matter which series i choose system always takes default one. I found other threads accourding to this issue but no solution found.
Regards,
GuruHello,
How guru. Is your problem solved? As i'm have a similar peroblem -
I have created a user form using screen painter and want to save data to my user defined table -
Document - U_OPCD
Document Rows - U_OPCD1
First i was using the SAPbobsCOM.UserTable object to save data to my usertable. But after registering it as a UDO (as i wanted document numbering series for it) i'm unable to save data using this SAPbobsCOM.UserTable object. As i'm uable to access the default fields (DocNum, DocDate, Series....) added to the table by SAP.
Can u help please? -
Question on program structure about event handling in nested JPanels in GUI
Hi All,
I'm currently writing a GUI app with a wizard included in the app. I have one class that acts as a template for each of the panels in the wizard. That class contains a JPanel called contentsPanel that I intend to put the specific contents into. I also want the panel contents to be modular so I have a couple of classes for different things, e.g. name and address panel, etc. these panels will contain checkboxes and the like that I want to event listeneres to watch out for. Whats the best way of implementing event handling for panel within panel structure? E.g for the the checkbox example,would it be a good idea to have an accessor method that returns the check book object from the innerclass/panel and use an addListener() method on the returned object in the top level class/panel. Or is it better to have the event listeners for those objects in the same class? I would appreciate some insight into this?
Regards!MyMainClass.main(new String[] { "the", "arguments" });
// or, if you defined your main to use varags (i.e. as "public static void main(String... args)") then you can just use
MyMainClass.main("the", "arguments");But you should really extract your functionality out of the main method into meaningful classes and methods and just use those from both your console code and your GUI code. -
About semantic indexing using user defined ontology
hi zhe,
according to the dev. guide, you can do semantic index on a document using user defined ontology. however, multiword class names, individual names and property names defined in the ontology are usually concatenated and cannot have space. if I have a multiword concept such as "http://www.example.org/medicalProblem/DiagnosedPastNeurologicalDeficit" rather than "http://www.example.org/medicalProblem/Diagnosed Past Neurological Deficit" in the ontology and a loaded document in the table also contains the concept "Diagnosed Past Neurological Deficit", so how is the extractor able to identify the concept in the document? do I need to describe the concept in the ontology using rdfs:lable like this "<rdfs:label xml:lang="en">Diagnosed Past Neurological Deficit</rdfs:label>" so that extractor can identify the concept in the document? I am not clear how to use user defined ontology to semantically index documents. thanks a lot in advance.
hongHi Hong,
The semantic indexing feature is itself a framework. There is no native NLP engine bundled with it.
There are NLP engines like Open Calais, GATE, and Lymba that can work with this framework. Some engines
can take an ontology and map entities (events, individuals, relationships etc.) embedded in the text to definitions in the ontology. You can also perform the mapping yourself. For example, you can take out the rdfs:label (or comment, or some other descriptive parts) of URIs, build an Oracle Text index, perform a fuzzy text match for a given piece of phrase, and select the URI that gives the best matching score.
Hope it helps,
Zhe Wu
Maybe you are looking for
-
Photoshop Elements 4 and Intel Core 2 Duo?
Hello All Does Photoshop Elements 4 (Mac) work on the new iMac's with the Intel Core 2 Duo Processors? I need to know before I buy it, I hear some say yes, and others say no. Thanks for your time, I am a new mac owner and I Love it, but I need my pho
-
Aperture 3 suddenly telling me Graphics card not supported
I have a Macmini 1.66ghz Intel with GMA 950 card. I've been using Aperture without issue but tried to open it this morning and received the message that the Graphics Card isn't supported. Running 10.6.3 and the latest version of Aperture 3. Any ideas
-
How do I get my iCal to sync with a Google cal? Do I have to go thru the Cloud first?
how do I get my iCal to sync with a Google cal? Do I have to go thru the Cloud first?
-
Underscores in report results ie: "__B"
Seems like something easy, but I have a web app and when I write and use a simple standard report, extracting data with the Microsoft SQL ODBC driver, I get data like "Los__bAngeles" or "New__BYork", etc.... How do I get the data out so that I get s
-
How can I transfer the bookmarks from my iPad to my PC?
I bookmarked several places on Safari when I was using my iPad and I want to transfer them to my PC?