Key Figure Definition - Context Menu of Querys

Hi experts,
After an upgrade from 3.x to 7.0, we´re having some problems to access the option "key figure definition" in the query context menu. When we access this context menu option, the filters are not passed between windows and some errors appears.
Have you ever seen something similar? how can I solve it? I looked for some similar issues in the forum, but I didn't find anything.
Thanks.
Edited by: Julian Holgado on Nov 2, 2010 3:35 AM

Hi Neeta,
Is it possible for a query to be affected by patchs of BEx frontend? I mean, when we're running a query and we try to access the context menu->key figure definition option, we're not watching the key figure restrictions and we get an error in the popup. Can we get the error because of a BEx frontend patch?
Thanks for you reply. Best regards,
Julian

Similar Messages

  • Key figure definition in BEx gives "Error loading template 0QUERY_TEMPLATE"

    Hi,
    On a BI 7.0 system I try to run a query in the BEx Analyzer and after I have the result in Excel. I wants to see the key figure definition by right clicking in a data cell.
    Then I get this error message after the browser has started up.
    Error loading template 0QUERY_TEMPLATE
    Notification Number BRAIN 276  
    Any ideas how this can be?
    Kind regards, Bjarne

    hi,
    Please check the below path in BI and set the template "0ANALYSIS_PATTERN" there:
    SPRO ->SAP Netweaver -> BI ->Settings for reporting and analysis ->BEX Web -> Set Standard Web Templates -> Ad-hoc analysis -> set the above template and save it.
    check wether it works afterwords or not.
    This is the standard web template called every time when we execute our query's.
    Thanks
    Dipika

  • Multi provider objects and restricted key figure definition

    I have the following scenario:
    1. I have a multi provider which is used as a template to build a second multiprovider the difference being one of the part provider cubes is replaced by a new cube
    2. There is a query built off the original multi provider which consists of a restricted key figure.  The definition of the restricted key figure is as follows
        Characteristic 1 - restricted to records with value 'A'
        Characteristic 2 - restricted to records with value 'Blue'
        Key Figure - Total Amount
    3. If I go to the original multiprovider and look at how the characteristics are identified and the key figure assigned the details are as follows
         Characteristic 1 - identified from all part providers including the part provider to be replaced
        Characteristic 2 - identified from all part providers including the part provider to be replaced
        Total Amount - assigned from two part providers (which are also involved in the identification of   Characteristic 1 and 2)  not including the part provider to be replaced
    4. In the new multi provider the details are as follows
    Characteristic 1 - identified from all part providers excluding the replacement part provider
        Characteristic 2 - identified from all part providers excluding the replacement part provider
        Total Amount - assigned from two part providers (which are also involved in the identification of   Characteristic 1 and 2)  not including the part provider to be replaced
    My thoughts are that it does not matter that Characteristic 1 and 2 cannot be identified from the new part provider since as long as the two part providers which are used to assign Total Amount are available in the new multi provider the values shown from the restricted key figure will be the same.  Is this correct? Thanks

    Hi,
    Yes this is correct. As long as you are reporting on Total Amount, the replacement cube will not make a difference because you never identified total amount from it. Did you face any issues?

  • Unit in Key Figure Definition

    Hi,
    This is very basic question.
    While defining the key-figure, we heve fields, 'Fixed Unit of Meas.' and 'Unit/Currency' in the 'Type/Unit' tab. Could any one can tell me that what is the difference between these two fields and its significance. Generally in 'Unit/Currency' we give '0BASE_UOM' which itself is a Unit Info-object. And in the definition of '0BASE_UOM', reference Info-object is '0UNIT'. So why hierarchy is like that?
    Thanks in advance.

    Hi Nitin,
    If you define some UoM in the Fixed Unit of Measure then for that keyfigure the UoM is "fixed". Normally keyfigures can be used on multiple planning areas and or infocubes and you do not want to have the UoM fixed. You define the UoM in the Planning Area so that the keyfigure stores data based on the Planning Area UoM in that case. In case of usage of keyfigure in an Infocube the UoM is maintained in a separate characteristic like 0BASE_UOM or 0UNIT.
    Since the same infoobject can have usage in multiple cases it is not advisable to put in a Fixed UoM during definition.
    Hope this helps.
    Thanks,
    somnath

  • Key selection of context menu broken

    Hey, since SL I realized a small strange thing. Every time when I select the "open with.." part from a context menu, e.g. in the finder, the context menu gets repeated over and over again. But this only happen when I select with my arrow keys. If I use the mouse to select then there is only the normal view of it.
    Here is the link to a screenshot:
    http://www.digitaltwilight.de/dl/context_menu.png
    Maybe that bug hasn't been posted yet.
    I hope you can fix it soon.
    Kind regards,
    Florian

    Move the com.apple.finder.plist file out of /Users/username/Library/Preferences/ to the Desktop, OPTION-click and hold the Finder Dock icon, select Relaunch, and see if the problem persists. Report back.

  • Calculated key figure definition dropping off

    I have a query with lots of calculated key figures (ckf). As I create more ckfs, the underlying definition of some ckf as old as 2 years old are removed. When I run the report, it throws error. What I have done is to put pack these calculations and it works. What can I do to stop the definitions from dropping?

    Hi,
    Can you please provide us the error message you are getting?
    Thanks & Regards,
    Vipin

  • Statistic Report - Key Figures Definition - Infoprovider 0TCT_MC01

    Hi Colleagues,
    What is the meaning of the KF 0TCTQUCOUNT ? Count for BI ApplObj ?
    It count the number of acces to a query by a user ? the number of navigational step in the query ?
    Thanks

    Its Counter for BI Application Objects
    check the following link:
    http://help.sap.com/saphelp_nw70/helpdata/en/10/e6332bef6e443e8e775043c1b0edf7/frameset.htm

  • NON CUMULATIVE KEY FIGURE 0NUMWDAY

    Hi Gurus,
                 I am having a problem I can't solve with key figure 0NUMWDAY.
                 I have to calculate 0numwdays for each 0calmonth. 0numwday is not an attribute of 0calmonth, (in fact 0calmonth has no attributes) which is OK, because working days vary for companies, factory calendar and country holidays.
                We have the routine ti get the exact number of days and working days for 0calmonth, and they go as a key figure for my Purchase Order Cube.
                Now, when I create the query for amount of purchase order for a certain month, I need the working days to calculate the average.
              But I get the working days summarized, when I need in fact only the working days NOT SUMMARIZED. I have tried different things, but haven't worked.
                I need working days by ocalmonth, purchase doc type, position, record condition (- or +). When I define an infoobject as reference, I can only add ONE, when I need to add more!
               Waiting for your help,
              Kind regards!

    Hi María,
    I think you can solve the problem by defining an exception aggregation to the key figure 0NUMWDAY.
    You can do it at key figure definition or at query level. 
    For more information, you can check this links:
    http://help.sap.com/saphelp_nw70ehp1/helpdata/en/d2/e0173f5ff48443e10000000a114084/content.htm
    http://help.sap.com/saphelp_nw70ehp1/helpdata/en/80/1a62f8e07211d2acb80000e829fbfe/content.htm
    Hope this helps.
    King regards,
    Maximiliano

  • Key Figures With Hide can be shown showing wrong values when displayed in a query

    Hi Experts,
    I have a qiery with two structures in the column(cell Definition) three key figures are displayed and the rest are all hide can be displayed. However whenever i display one of the hidden key figures along with one displayed key figures it initially shoes incorrect values. Once i add another key figure (which has status always show) the hidden jey figure value gets corrected. Is it a problem with the structure? Kindly assist.For example  when i display the actuals(always show) and actuals rate(hide can be shown) the values for actuals rate are wrong , however when i add the plan rate(always ahow) the values for actual rate gets corrected. Screenshots for structures below.

    Hi Sayanto,
    For this I would recommend you to check the Key figure definition in all 3 situations.
    1. original display
    2. display of hidden KF
    3. Display of existing KF
    I suspect that cell references may have some effect on the calculation as you are adding the hidden KF in analyzer directly. You can prove this only by checking  Key figure definition.
    Please let me know if you are facing any issue in getting the Key figure definition itself.
    Also, as Cornelia suggested check if you have any constant selection applied to any of your KFs.
    Hope this helps.
    -Swati.

  • Delete datagridview row using right click context menu does not behave like the delete key

    I have a datagridview with editing enabled. If I click the row header and press the delete key, the row is removed no questions asked. I don't recall doing any coding to make this happen but I couldn't do copy and paste using keys so I created a context
    menu with copy, paste, & delete.  The delete option calls
    dgvVX130.Rows.RemoveAt(dgvVX130.SelectedRows[0].Index);
    The row is removed but the problem is this fires other events like RowValidating which fails.  I presume because the row is no longer there.
    The delete keypress is definitely a lot cleaner so my question is 3fold. 
    1) Why doesn't Rows.RemoveAt behave like the delete key? 
    2) Is it possible to issue a delete keypress to do the same thing?
    3)  Is it possible to suppress the RowValidating event or other events when Rows.RemoveAt is fired?

    Interesting.  My delete key does not fire the row validating event.  When I use the delete key I click on the row header which does fire the row validating event and then I press the delete key.  Row is deleted and no event fires.  Works
    just the way I want it to.  I wish my context menu delete worked that way.  I wouldn't know what chunk of code I can provide to show the Row Validating NOT firing when delete key is pressed but here is the context menu code that does fire Row Validating.
    private void cmsEditItemClick(object sender, ToolStripItemClickedEventArgs e)
    ToolStripItem item = e.ClickedItem;
    switch (item.Text)
    case "Copy":
    if (dgvVX130.GetCellCount(DataGridViewElementStates.Selected) > 0)
    try
    // Add the selection to the clipboard.
    Clipboard.SetDataObject(
    dgvVX130.GetClipboardContent());
    // Replace the text box contents with the clipboard text.
    catch (System.Runtime.InteropServices.ExternalException)
    MessageBox.Show("The Clipboard could not be accessed. Please try again.");
    break;
    case "Paste":
    if (Clipboard.GetDataObject().GetDataPresent(DataFormats.Text) == true)
    ClipboardUtils.PasteFromClipboard(dgvVX130);
    dgvVX130.NotifyCurrentCellDirty(true);
    dgvVX130.EndEdit();
    dgvVX130.NotifyCurrentCellDirty(false);
    bindingSource1_PositionChanged(this, e);
    break;
    case "Delete":
    dgvVX130.Rows.RemoveAt(dgvVX130.SelectedRows[0].Index);
    break;
    default:
    //code
    break;
    private void dgvVX130CellContentClick(object sender, DataGridViewCellEventArgs e)
    //dgvVX130.IsUserSelectionEnabled = true;
    dgvVX130.BeginEdit(false);
    ((TextBox)dgvVX130.EditingControl).SelectionStart = 0;
    //((TextBox)dgvVX130.EditingControl).SelectionLength = 3;
    public class ClipboardUtils
    public static void PasteFromClipboard(DataGridView grid)
    try
    char[] rowSplitter = { '\r', '\n' };
    char[] columnSplitter = { '\t' };
    // Get the text from Clipboard
    IDataObject dataInClipboard = Clipboard.GetDataObject();
    string stringInClipboard = (string)dataInClipboard.GetData(DataFormats.StringFormat);
    // split into rows
    string[] rowInClipboard = stringInClipboard.Split(rowSplitter, StringSplitOptions.RemoveEmptyEntries);
    // get current cell
    int currentRow = grid.SelectedCells[0].RowIndex;
    int currentColumn = grid.SelectedCells[0].ColumnIndex;
    // get 1st cell in selected area
    for (int i = 1; i < grid.SelectedCells.Count; i++)
    if (currentRow > grid.SelectedCells[i].RowIndex)
    currentRow = grid.SelectedCells[i].RowIndex;
    if (currentColumn > grid.SelectedCells[i].ColumnIndex)
    currentColumn = grid.SelectedCells[i].ColumnIndex;
    // add more rows if need to paste data
    /* if (grid.Rows.Count < rowInClipboard.Length + currentRow)
    grid.Rows.Add(rowInClipboard.Length + currentRow - grid.Rows.Count); */
    // paste
    for (int iRow = 0; iRow < rowInClipboard.Length; iRow++)
    if (iRow + currentRow < grid.Rows.Count)
    string[] cellsInRow = rowInClipboard[iRow].Split(columnSplitter);
    for (int iCol = 0; iCol < cellsInRow.Length; iCol++)
    if (grid.ColumnCount > currentColumn + iCol)
    DataGridViewCell currentCell = grid.Rows[currentRow + iRow].Cells[currentColumn + iCol];
    if (!currentCell.ReadOnly) // H.NH added to avoid Read only case.
    if (cellsInRow[iCol] == "")
    if (grid.Columns[iCol].ValueType.Name == "String")
    currentCell.Value = null;
    else
    currentCell.Value = DBNull.Value;
    else
    currentCell.Value = cellsInRow[iCol];
    switch (iCol)
    case 3:
    currentCell.Value += "_ChangeColumnName";
    break;
    case 2:
    currentCell.Value = grid.Rows[iRow].Cells[iCol].Value;
    break;
    else break;
    catch (Exception e)
    MessageBox.Show("Sorry, can not paste from the clipboard.\nError: " + e.Message, "Paste Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

  • T40's Left Shift key makes right click/context menu appear?

    Hello All-
    On my T40, on which I just recently got Windows 7 correctly installed, has a curious behavior:
    When I press the left shift key, it functions the same as if I had pressed the right mouse button.  It functions correctly otherwise, I.E., when using it to capitolize a letter in an email, the letter is capitolized, but as soon as I let go of the shift key, the right click/context menu immediately appears.
    This is exceedingly irritating, as I cannot continue typing until I have navigated out of the menu.
    I have checked to see if the Keyboard Customiser utility is causing this, as I currently have my left Alt key functioning as a Windows button, but it does not appear to be causing this particular issue.
    Does anyone have any idea how I might go about fixing this?
    Thanks in advance,
    G
    Solved!
    Go to Solution.

    Nevermind-
    Had the keyboard customizer set to use the left shfit key as the application key.  Duh.

  • T430 Right shift key showing context menu

    Hi,
    I just got a Lenovo T430 and after using for barely a month, i got this issue that makes me go crazy.
    The OS is windows 8.0 Pro.
    Anytime i press the right shift key or the Enter key, i get this context menu popping out, sometimes moving my cursor somewhere else and doing other crazy stuffs
    Please what is wrong?

    Might be a faulty keyboard or keyboard cable. Try reseating the keyboard?
    W520: i7-2720QM, Q2000M at 1080/688/1376, 21GB RAM, 500GB + 750GB HDD, FHD screen
    X61T: L7500, 3GB RAM, 500GB HDD, XGA screen, Ultrabase
    Y3P: 5Y70, 8GB RAM, 256GB SSD, QHD+ screen

  • Definition of Non cumulative Key figure and web template

    Hi all,
    Can anyone define a Non cumulative Key figure and a web template.
    Thanks in advance.

    A non-cumulative is a non-aggregating key figure on the level of one or more objects that is always displayed in relation to time.Examples of non-cumulatives include headcount, account balance and material inventory.If the non-cumulatives change infrequently, you should choose non-cumulative management with non-cumulative key figures.
    http://help.sap.com/saphelp_nw04/helpdata/en/80/1a62ebe07211d2acb80000e829fbfe/frameset.htm
    for webtemplates you can info in the following
    http://help.sap.com/saphelp_nw04/helpdata/en/1a/456a3badc1b315e10000000a114084/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/44/b26a3b74a4fc31e10000000a114084/content.htm

  • [TUTORIAL] Context Menu to export EML files

    Hello there folks!
    I'm pretty new to the topic of C3PO, GW and all the Novell stuff and one of my tasks was to "code an export mechanism for GW8 thats lats us save e-mails to our storage system". Ok, that was a hammer. But wrapping my head around it and starting to error out the things got me pretty far and I guessed it was tutorial material. So here we go:
    @Moderators: This is the thread that has everything in it. the other one can be deleted.
    This tutorial is intendend for C# only. I don't like VB and I'm too dumb for C++ so if you need it for another dialect you need to work it out your self.
    Agenda:
    Needed packages
    C3PO wizard
    Loading to Visual Studio 2010
    Needed Imports/References
    Simple MessageBoxing
    Export Code
    Registering and caching the .DLL
    Testing (please help me with a better way here)
    1. Needed packages
    the novell-gwc3po-devel-2012.11.15.zip file (unzip this after downloading)
    an installed version of Visual Studio 2012 C# (or if you want to work with a different dialect choose another)
    cmd access to some of the registering tools:
    It may be the best thing to set tose paths up in you env variables. Allthough when running the cmd with administrator privileges you can't use regasm from env variables and need to cd to the directory.
    RegAsm (regasm.exe): C:\Windows\Microsoft.NET\Framework\v4.0.30319 (the version depends on the target)
    GACUtil (gacutil.exe): C:\Program Files(x86)\Micrsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\ (this path is also dependent on your target framework version, I chose .NET4)
    StrongName (sn.exe): C:\Program Files(x86)\Micrsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\ (this path is also dependent on your target framework version, I chose .NET4)
    a good beverage :D (you should obtain multiple of these :D)
    2. The C3PO wizard
    In my case I wanted to add the functionality via the context menu. So the code executes when right-clicking on one or multiple messages displays another menu item and is clickable.
    This is pretty easy to realize via the C3PO wizard. You'll find it in the downloaded and extracted novell-gwc3po-devel-2012.11.15.zip from above. Start it (it is located in extracted-zip-folder/gwc3po-FILES/C3POWizard/C3POWizard.exe) and setup your project:
    Setup the project in the wizard step 1
    I usually setup the Wizard inside my Visual Studio 2010 projects folder, create a new folder there with the name of the project and check the options i want to have.
    In the next step I chose which type of View should display my custom context menu. Since I was only interested in exporting and working with e-mails I chose "GW.MESSAGE.MAIL" and added it to the bottom list via, you guessed it, "Add".
    Setup theView that invokes the new context menu item
    In the next step you I had to setup a new entry for the context menu. You could make side-droppable menus here etc. But for me a simple "Add Menu" was enough. Give it a name of your choice (beware: I'm yet to find out where to change this setting in the source files).
    Creating a Menu Item in step 3
    Click through next and the wizard will sum up you choices. In the next dialog window you will be prompted to specify the language you want the code to be generated. I chose .NET C#.
    In the prompt after that you will be asked if the wizard should create a .DLL-project. You click yes.
    Quit the wizard with the "Done" button.
    3. Loading to Visual Studio 2010
    Open up your Visual Studio and go to File -> Open Project. Navigate to the folder where you just created the files with the C3PO-Wizard. and open up the .csproj file.
    All the files get loaded and it seems quite well. but now it's time for some other stuff: Signing, or better, providing a key for signing.
    Allthough the README.txt (also in your project folder) states this is not neccessarily needed I did not get it to work without a key file.
    Open up a terminal and tpye in sn /? to see if the environment variables work. If not you can yuse the abolute path to sn (see: 1: Needed packages). If everything works as expected you can generate your keyfile with sn -k <PathToYourProject>\Archive.snk.
    In Visual Studio, go to Project -> <ProjectName>-Properties -> Signing -> Sign assembly [x] -> Search and pick the .snk-file you just created.
    Good. A first compilation of the project with F6 should rumble through without problems. Go to <ProjectFolder>\bin\Release and copy the .dll files to <GroupWiseInstallPath>.
    After that you need to open a cmd windows as administrator and cd to the RegAsm.exe directory and execute the following: [I]regasm "<GroupWiseInstallPath>\<TheDllName>.dll". Then execute gacutil -i "<GroupWiseInstallPath>\<TheDllName>.dll".
    RegAsm will register the extension to the Windows registry and GACUtil will cache the .dll content to make it available to GroupWise.
    You need to re-cache the .dll everytime you compile in VS. So basically the workflow is Compile -> Copy dll to GroupWise directory -> re-cache with gacutil -i -> Start Groupwise
    I have not found a method to post-build execute a script that does that. Problem is the copying and the gacutil caching (both must be done as administrator).
    IIf everything worked you see a new entry in the context menu when right-clicking a mail in Groupwise. When you click it, there will appear a message box.
    The MessageBox is defined in GWCommand.cs L. ~125
    4. Needed Imports/References
    Since we got the skeleton to compile and function properly, it's time to get our own code in there. FOr rapid prototyping I do all the stuff in GWCommand.cs.
    Go to Project -> add Reference -> COM and select "C3POTypeLibrary", "GroupWareTypeLibrary, "GroupWiseCommander", "GroupWiseConnectorLibrary" and click OK. The selected entries now appear in the project explorer.
    5. Simple MessageBoxing
    A thing I like to do (because I'm not a very good programmer) is to get all sorts of infos to get displayed with
    Code:
    MessageBox.Show();
    Just fling it in the code and see what get's where etc. An important thing is allready in the comments of the file.
    It is this line:
    Code:
    C3POTypeLibrary.IGWClientState6 myCL = (C3POTypeLibrary.IGWClientState6)WIASSArchivButton.g_C3POManager.ClientState;
    . Uncomment it and play around with the myCL-object in your code.
    The myCL has some properties we will use later on such as myCL.SelectedMessages which is exactly what we need for our archive functionality.
    6. Export Code
    Now we get to the code:
    With the
    Code:
    ClientState
    dug up in the code we can pass the
    Code:
    SelectedMessages
    into a
    Code:
    MessageList
    . Over this MessageList we will iterate and save each
    Code:
    Message
    with the so called
    Code:
    GroupWiseCommander
    to our disk. well that sounds simple. And, well after digging through a lot of threads here on the forum and the documentation, it is.
    Here is the Execute() method from GWCommand.cs:
    It has comments that should serve as a documentation.
    Code:
    public void Execute()
    try
    switch (m_PersistentID)
    case WIASSArchivButton.vWIASS:
    //C3PO WIZARD Put execute command code here for WIASS Context menu.
    /* this was in the comments and is essential!
    * the myCL object provides us everything we need to interact with the messages */
    C3POTypeLibrary.IGWClientState6 myCL = (C3POTypeLibrary.IGWClientState6)WIASSArchivButton.g_C3POManager.ClientState;
    // get the selected messages
    object o = myCL.SelectedMessages;
    // and convert the SelectedMessages to a MessagesList
    MessageList ml = (MessageList)o;
    // iterate over all the selected Messages
    // this was tricky: the index of the MessageList starts by 1 and not at 0
    for (int i = 1; i <= ml.Count; i++)
    // the .Item() method expects either a string or a long
    // see http://www.novell.com/documentation/developer/groupwise_sdk/gwsdk_gwobjapi/data/h20s5bdo.html
    long index = (long)i;
    // instantiate a Message object to get access to the different properties like subject, sender etc
    GroupwareTypeLibrary.Message oMessage = (GroupwareTypeLibrary.Message)ml.Item(index);
    // instantiate a GroupWiseCommander
    // this is the interface to the TOKEN API
    // TOKENS: https://www.novell.com/developer/documentation/gwtoken/index.html
    GroupWiseCommander.GWCommander cmdr = new GroupWiseCommander.GWCommander();
    // the GWCommander has an Execute() method that is able to take certain tokens kind of like SQL
    // lets build the token (the complete list is huge and awesome) to save our Messages
    // ItemSaveMessage(): https://www.novell.com/developer/documentation/gwtoken/gwtokens/data/hbt0bd7x.html
    string tokenCommand = "ItemSaveMessage(\"" + oMessage.MessageID + "\"; \"C:\\archiv\\" + oMessage.MessageID + ".eml\"; 900)";
    /* what happens here ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ is that we build us a TOKEN command that the
    * GWCommander is able to execute.
    * the actual command is ItemSaveMassge()
    * everything between the semi-colons are the parameters:
    * \"" + oMessage.MessageID + "\" : builds an ANSISTRING of the MessageID which we get from the oMessage onject
    * \"C:\\archiv\\" + oMessage.MessageID + ".eml\" : build an ANSISTRING of the output filename
    * 900 is the type we want to export. 900 stands for Mime
    * CAUTION:In this example I use C:\archive\ as the destination folder. It must exist and be writable to the program
    // now that we have setup our command we can get it executed by the commander
    // the result is sort of a callback variable
    string result ="";
    cmdr.Execute(tokenCommand, out result);
    /* here can the error handling be done with the result string
    break;
    default:
    MessageBox.Show("Unsupported Case", "Error", MessageBoxButtons.OK);
    break;
    //A way to get the GroupWise client state with newest interface
    //C3POTypeLibrary.IGWClientState6 myCL = (C3POTypeLibrary.IGWClientState6)WIASSArchivButton.g_C3POManager.ClientState;
    //uncomment the code below to unblock the base command
    //IGWCommand baseCmd = (IGWCommand)WIASSArchivButton.g_C3POManager.CreateGWCommand(m_objBaseCmd);
    //baseCmd.Execute();
    catch (Exception e)
    MessageBox.Show("Error Executing GWCommand: " + m_PersistentID.ToString() + " Error: " + e.Message);
    return;
    7. Registering and caching the .DLL
    After that you need to open a cmd windows as administrator and cd to the RegAsm.exe directory and execute the following: regasm "<GroupWiseInstallPath>\<TheDllName>.dll". Then execute gacutil -i "<GroupWiseInstallPath>\<TheDllName>.dll".
    RegAsm will register the extension to the Windows registry and GACUtil will cache the .dll content to make it available to GroupWise.
    You need to re-cache the .dll everytime you compile in VS. So basically the workflow is Compile -> Copy dll to GroupWise directory -> re-cache with gacutil -i -> Start Groupwise
    8. Testing (please help me with a better way here)
    Is there a good way to hook every thing up together to jsut stay in VS , compile, files get copied, registered, cached and GW starts?
    Thanks for reading!
    I wrote this up to have a documentation for myself and others. please let em know if you need help or anything is missing or not clear. It's certainly not a total noob guide and I expect a bit of knowledge to be honest.
    Regards
    Sebastian

    Originally Posted by Username951
    Multiple email selection should be possible, but only those emails that are fitting some requirements should be stored finally in database.
    One requirement is for example that a keyword like "ISSUE" appears in the email subject
    (followed by a ":", a "space" and some characters that can be converted to an integer value),
    multiple, leading "Fwd: " and/or "Re: " should be handled well,
    subject should be handled case-in-sensitive.
    This sounds like you should implement some sort of SelectedMessagesValidator class just to keep it clean.
    Originally Posted by Username951
    So here are my find outs, remarks, etc.:
    1.) Visual Studio should be started under admin. rights.
    Then you can write a post-build event (batch) that copies, "regasm"s and "gacutil"s everything.
    As said this works fine for me.
    But note that unfortunately the paths to "regasm" and "gacutil" changed
    (compared to the time where you wrote your tutorial).
    Definitely. That way, as you mentioned, the post build scripts integrate very well.
    Originally Posted by Username951
    2.) The "Novell C3PO" wizard was downloaded and worked out as described in our tutorial.
    One important step was to use "GW.MESSAGE.MAIL" and not "...BROWSER..." or something else.
    I can not figure out, where you have the GW.BROWSER thing from, but in my examples I allways used GW.MESSAGES.MAIL
    Originally Posted by Username951
    The wizard created finally the basic C# (.NET framework 2.0) project.
    This project was loaded in Visual Studio 2013, automatically converted to "newest version"
    and finally was a ".sln" made.
    Yes. You can leave it at 2.0. I just have the 4.5 installed so i will target this version
    Originally Posted by Username951
    "oracle.dataaccess"
    -> Note that the "Copy Local" property must be set to "true"!
    (This property will be reset to "false" after a successful (re)build.
    So check this and change it to "true" for the first build!
    This must be made only once because after a successful build is this .dll known;
    keywords: GAC -> cached
    But note that "successful" means also that the post-build event ran flawless!)
    This is quite specific to your case since my example on exports a flat EML file to the hard drive
    Originally Posted by Username951
    2.) regasm.exe needs strong names.
    So a "cmd" with admin. right was opened,
    a
    "C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\sn.exe" -k "C:\Users\<username>\Documents\Visual Studio 2013\Projects\GWSaveToDatabase\GWSaveToDatabase.sn k"
    fired
    and the created "GWSaveToDatabase.snk" file added to the solution.
    I don't want to be picky, but it's gacutil that needs the strong names. ragasm is not complaining
    Originally Posted by Username951
    (Development) Remarks
    1.) While I used the "C3PO" wizard first time I used "Add Menu" item - as you said in your tutorial! :-(
    And that is definitely wrong!
    See:
    The result was a C# project that does not show any new context menu entry.
    So I tried at the next wizard run "Add Menu Item".
    The wizard created again a C# project but still no new context menu entry in the GroupWise client.
    (And that after all needed steps
    like
    copy to GroupWise installation path,
    regasm and gacutil over all .dlls
    etc.
    were successful be made).
    It took a complete day to get the idea to "merge" the two wizard created projects!
    Why merging?
    Because the second project contained a "const" which were used in the switch statement of the "Execute()" method
    (with the same meaning like your "WIASSArchivButton.vWIASS" - see your code snippet above!)
    and the "CustomizeContextMenu(...)" method in "CommandFactory.cs" looked also different
    while the first project does not contained something similar.
    ( For example:
    The "CustomizeContextMenu(...)" method had more statements.
    And that made more sense to me compared to the first wizeard created C# project.
    Since I uploaded a better example this is obsolete.
    Originally Posted by Username951
    So I ASSUME that the second project would work but it does not because of regasm / gacutil behaviour.
    Means I believe it would work when all
    with regasm registered
    and
    with gacutil to the cache added "things"
    would be "un-registerd" and "un-cached".
    This is, as I assume, due to the Interop.C3POTypeLibrary.dll. This must me cached every time the project is build. maybe you could use gacutil -i Interop.C3POTypeLibrary.dll -f to force the recaching
    Originally Posted by Username951
    So, finally I took the second, wizard created C# project and copied the "const", adjusted the "Execute()"
    and "CustomizeContextMenu(...)" methods, etc.
    After that the context menu were shown in the GroupWise client!
    Thats is correct. But I never had to do this. The thing is, that the "Add Menu Item" is giving you the opputunity to specify a command, which the "Add Menu" doesn't.
    Originally Posted by Username951
    2.) The next issue was that the context menu was added as often as many emails were selected.
    Means: For example: Three selected emails ends up in three time added context menu.
    Solution:
    Checking
    var existsAlready = menuItems.Item("...");
    if (existsAlready != null)
    return;
    in "CustomizeContextMenu(...)" method and leaving the method under shown circumstances.
    I added a fix for this in the second post, but it isn't working in GW2012 anymore. I have a very ubly fix for that in my new code.
    Originally Posted by Username951
    3.) The by the wizard created registry path contained the version number "5.0".
    This may confuse but it is finally ok. No need to change here anything!
    On the other side:
    It will NOT work when the registry entry
    "SOFTWARE\\Novell\\GroupWise\\5.0\\C3PO\\DataTypes \\...."
    will be changed/"adjusted to that GroupWise client version you are currently using"!
    This is all part of the official documentation and wasn't touched by Novell since quite a long time.
    I think i will make a github repository in the futer as a proof of concept and kind of a accessable documentation for everyone.

  • Steps to create a Restricted Key Figure

    Hi,
    I am trying to create a  BEx Query and want to create a Restricted Key Figure.
    I am using BEx 7.x.
    Please help me with steps to create a Restricted Key FIgure.
    Thnaks and Regards,
    Shreyas Shah

    Hi Shreyas,
    Please find the step by step to create a restricted key figures.
    Procedure for Defining a new restricted key figure:
    1. In the InfoProvider screen area, select the Key Figures entry and choose New Restricted Key Figure from the context menu (secondary mouse button).
    If a restricted key figure has already been defined for this InfoProvider, you can also select the Restricted Key Figures entry and then choose New Restricted Key Figure from the context menu.
    The entry New Restricted Key Figure is inserted and the properties for the restricted key figure are displayed in the Properties screen area.
    2. Select the New Restricted Key Figure entry and choose Edit from the context menu (secondary mouse button).
    The Change Restricted Key Figure dialog box appears.
    You can also call the Change Restricted Key Figure dialog box from the Properties screen area by choosing the Edit pushbutton.
    You make the basic settings on the General tab page.
    The text field, in which you can enter a description of the restricted key figure, is found in the upper part of the screen.
    You can use text variables in the description (see Using Text Variables).
    Next to that, you can enter a technical name in the Technical Name field.
    Underneath the text field, to the left of the Detail View area, the directory of all objects available in the InfoProvider is displayed. The empty field for defining the restricted key figure (Details of the Selection) is on the right-hand side of the screen.
    3. Using drag and drop, choose a key figure from the InfoProvider and restrict it by selecting one or more characteristic values. See Restricting Characteristics.
    You can also use variables instead of characteristic values. However, note that you cannot use the following variable types in restricted key figures for technical reasons:
    Variables with the process type Replacement with Query (see also Replacement Path: Replacement with Querys)
    Variables that represent a precalculated value set (see also Details)
    You can use these variable types to restrict characteristics in the rows, columns, or in the filter.
    4. Make any necessary settings for the properties of the restricted key figure on the other tab pages. See Selection/Formula Propertiess.
    5. Choose OK. The new restricted key figure is defined for the InfoProvider.
    Let me know if this helps.
    Thanks
    Sachin

Maybe you are looking for

  • Locking Issue in Planning DSO- SAP BW 7.3 Integarted Planning

    Hi Experts, We have built Aggregation Level on Direct Update (planning enabled) DSO and used the same in the input ready queries.( Its complete Manual planning - new row addition feature in WAD). We have 5 characteristic and one key figure for planni

  • How can you get a refund?!?!

    Ive had like 3 ipods and all of them have been heaps faulty, my ipods broken and i want a refund. in my warranty it says i can get a refund and that for further info to go to the apple support page. pretty sure ive searched this whole website and all

  • Final Cut Pro X and multiple users

    Any ideas about how Apple will handle multiple users for FCP X, when it is downloaded from the App Store?

  • Why is Illustrator CS4 so ******* sluggish in OSX?

    I always used Illustrator on Windows XP but have been forced to work on Illustrator on OSX (Imac dual core 3 Ghz with 4GB of ram OSX 10.5.8) at work for the last year. I like OSX but Illustrator performance is quite bad compared to what I'm used to o

  • PROFILE FOR SD,MM,FICO

    Dear All, I have to create three new test users for SD, MM ,FICO.I know the procedure but dont know which profile to give so that the SD test user can use only SD Transaction codes and MM test user only MM tcodes. Can anyone tell just like SAP_ALL,do