Create, Update & Save Functions

Hi All,
This is my code for the requirement to print sales order in ALV Grid Format using OOPS concept.
Please tell me how i should add select button to the ALV Grid in the first column.
Also when i click on CREATE button a new blank line should be added to the alv grid.
when i click on UPDATE button the selected row should become editable & when i click on save then my Ztable should be update with the new values and all the changes made.
The Ztable has fields as of the IT_FIANL table.
I have gone through many links regarding this topic but cant implement it in my code.
REPORT  z12darp_shad_so_alv_oops
        MESSAGE-ID z12darp1.
*Class definition for handling double click
CLASS event_class DEFINITION DEFERRED.
*Class definition for ALV toolbar
CLASS lcl_alv_toolbar   DEFINITION DEFERRED.
*AUTHOR: Darpana. Ahire
*DATE: 28/11/2008
*DESCRIPTION: To printsales order as Interactive ALV using OOPS concept.
*&               D A T A   D E C L R A T I O N
type-pools: icon.
INCLUDE z12darp_alv_oops.
data: ok_code_2008 like sy-ucomm.
*&  Include           Z12DARP_ALV_OOPS
*Author: Darpana. Ahire
*Date: 28/11/2008
*Description: ALV Grid Using OOPS concept.
tables: z12Darp_final.
types: begin of ty_vbak,
         vbeln   type   vbeln_va,
         erdat   type   erdat,
         vkorg   type   vkorg,
         spart   type   spart,
      end of ty_vbak.
types: begin of ty_vbap,
         vbeln   type   vbeln_va,
         posnr   type   posnr_va,
         matnr   type   matnr,
         netpr   type   netpr,
         netwr   type   netwr_ap,
       end of ty_vbap.
types: begin of ty_final,
         vbeln   type   vbeln_va,
         erdat   type   erdat,
         vkorg   type   vkorg,
         spart   type   spart,
         posnr   type   posnr_va,
         matnr   type   matnr,
         netpr   type   netpr,
         netwr   type   netwr_ap,
       end of ty_final.
data: wa_vbak   type   ty_vbak,
      wa_vbap   type   ty_vbap,
      wa_final  type   ty_final.
data: it_vbak   type   standard table of   ty_vbak,
      it_vbap   type   standard table of   ty_vbap,
      it_final  type   standard table of   ty_final.
data: v_vbeln   type   vbeln_va.
data: cust   type   ref to     cl_gui_custom_container,
      alv    type   ref to     cl_gui_alv_grid,
      event_receiver TYPE REF TO event_class.
data: wa_fcat       type    lvc_s_fcat,
      it_fcat       type    lvc_t_fcat,
      wa_layout     type    lvc_s_layo.
*Declaration for toolbar buttons
DATA : ty_toolbar TYPE stb_button.
data: c_alv_toolbar    TYPE REF TO lcl_alv_toolbar.      "Alv toolbar
*&               S E L E C T I O N     S C R E E N
SELECT-OPTIONS: ss_vbeln FOR v_vbeln.
*&                 I N I T I A L I Z A T I O N
INITIALIZATION.
  PERFORM initial.
*&               A T   S E L E C T I O N - S C R E E N
AT SELECTION-SCREEN.
  PERFORM at_sel_scr.
*&            S T A R T - O F - S E L E C T I O N
START-OF-SELECTION.
  PERFORM sel_records.
  PERFORM join_tables.
  PERFORM alv_output.
* CLASS lcl_event_receiver DEFINITION
CLASS event_class DEFINITION.
*Handling double click
  PUBLIC SECTION.
  METHODS:
    handle_double_click
    FOR EVENT double_click OF cl_gui_alv_grid
    IMPORTING e_row e_column.
ENDCLASS. "lcl_event_receiver DEFINITION
* CLASS lcl_event_receiver IMPLEMENTATION
CLASS event_class IMPLEMENTATION.
METHOD handle_double_click.
  case e_column.
    when 'MATNR'.
      read table it_final into wa_final index e_row-index.
      set parameter id 'MAT' field wa_final-matnr.
      call transaction 'MM03' and skip first screen.
   endcase.
ENDMETHOD.           "handle_double_click
endclass.
*       CLASS lcl_alv_toolbar DEFINITION
*       ALV event handler
CLASS lcl_alv_toolbar DEFINITION.
  PUBLIC SECTION.
*Event for toolbar
    on_toolbar
       FOR EVENT toolbar
       OF  cl_gui_alv_grid
       IMPORTING e_object e_interactive,
  handle_user_command
        for event user_command of cl_gui_alv_grid
            importing e_ucomm.
endclass.
*       CLASS lcl_alv_toolbar IMPLEMENTATION
*       ALV event handler
CLASS lcl_alv_toolbar IMPLEMENTATION.
METHOD on_toolbar.
*   Add customized toolbar buttons.
*   variable for Toolbar Button
    clear ty_toolbar.
    ty_toolbar-icon      =  icon_create.
    ty_toolbar-butn_type = 0.
    ty_toolbar-text = 'CREATE'.
    APPEND ty_toolbar TO e_object->mt_toolbar.
    clear ty_toolbar.
    ty_toolbar-icon      =  icon_change.
    ty_toolbar-butn_type = 0.
    ty_toolbar-text = 'UPDATE'.
    APPEND ty_toolbar TO e_object->mt_toolbar.
    clear ty_toolbar.
    ty_toolbar-icon      =  icon_system_save.
    ty_toolbar-butn_type = 0.
    ty_toolbar-text = 'SAVE'.
    APPEND ty_toolbar TO e_object->mt_toolbar.
ENDMETHOD.                    "on_toolbar
method handle_user_command.
case e_ucomm.
    when 'CREATE'.
    when 'UPDATE'.
endcase.
endmethod.                           "handle_user_command
ENDCLASS.            "lcl_event_receiver IMPLEMENTATION
*&      Module  STATUS_2008  OUTPUT
*       text
MODULE status_2008 OUTPUT.
  SET PF-STATUS 'MENU1'.
  SET TITLEBAR 'TITLE1'.
ENDMODULE.                 " STATUS_2008  OUTPUT
*&      Module  alv_display  OUTPUT
*       text
MODULE alv_display OUTPUT.
  IF cust IS INITIAL.
*    Creating object of container
    CREATE OBJECT cust
    EXPORTING
      container_name              = 'CUSTOM'.
*    Creating object of alv
    CREATE OBJECT alv
      EXPORTING
        i_parent          = cust.
** create ALV event handler
*  CREATE OBJECT c_alv_toolbar
*    EXPORTING
*      io_alv_grid = alv.
create object c_alv_toolbar.
* Register event handler
  SET HANDLER c_alv_toolbar->on_toolbar FOR alv.
  set handler c_alv_toolbar->handle_user_command for alv.
*    alv layout
    PERFORM alv_layout.
*    alv field catalogue
    PERFORM fieldcatalog_display.
*    Displaying the ALV grid
    CALL METHOD alv->set_table_for_first_display(
      EXPORTING
        is_layout                     = wa_layout
      CHANGING
        it_outtab                     = it_final
        it_fieldcatalog               = it_fcat ).
*Create object of the event class and setting handler for double click
    CREATE OBJECT event_receiver.
    SET HANDLER event_receiver->handle_double_click FOR alv.
ENDIF.
ENDMODULE.                 " alv_display  OUTPUT
*&      Module  USER_COMMAND_2008  INPUT
*       text
module USER_COMMAND_2008 input.
  case ok_code_2008.
    when 'EXT'.
      leave program.
    when 'BCK'.
      leave to screen 0.
    when 'UP'.
      leave program.
  endcase.
endmodule.                 " USER_COMMAND_2008  INPUT
*&                E N D   O F   M A I N   P R O G R A M
*&      Form  initial
*       text
*  -->  p1        text
*  <--  p2        text
FORM initial .
  CLEAR: wa_vbak,
         wa_vbap,
         wa_final.
  REFRESH: it_vbak,
           it_vbap,
           it_final.
ENDFORM.                    " initial
*&      Form  at_sel_scr
*       text
*  -->  p1        text
*  <--  p2        text
FORM at_sel_scr .
  SELECT vbeln
    INTO TABLE it_vbak
    FROM vbak
    WHERE vbeln IN ss_vbeln.
  IF sy-subrc <> 0.
    MESSAGE e000.
  ENDIF.
ENDFORM.                    " at_sel_scr
*&      Form  sel_records
*       text
*  -->  p1        text
*  <--  p2        text
FORM sel_records .
  SELECT vbeln
         erdat
         vkorg
         spart
  INTO TABLE it_vbak
  FROM vbak
  WHERE vbeln IN ss_vbeln.
  IF sy-subrc <> 0.
    MESSAGE e000.
  ENDIF.
  SELECT vbeln
         posnr
         matnr
         netpr
         netwr
  INTO TABLE it_vbap
  FROM vbap
  FOR ALL ENTRIES IN it_vbak
  WHERE vbeln = it_vbak-vbeln.
  IF sy-subrc <> 0.
    MESSAGE e000.
  ENDIF.
ENDFORM.                    " sel_records
*&      Form  join_tables
*       text
*  -->  p1        text
*  <--  p2        text
FORM join_tables .
  SORT it_vbak BY vbeln.
  SORT it_vbap BY vbeln posnr.
  LOOP AT it_vbap INTO wa_vbap.
    READ TABLE it_vbak INTO wa_vbak WITH KEY vbeln = wa_vbap-vbeln
    BINARY SEARCH.
    wa_final-vbeln = wa_vbak-vbeln.
    wa_final-erdat = wa_vbak-erdat.
    wa_final-vkorg = wa_vbak-vkorg.
    wa_final-spart = wa_vbak-spart.
    wa_final-posnr = wa_vbap-posnr.
    wa_final-matnr = wa_vbap-matnr.
    wa_final-netpr = wa_vbap-netpr.
    wa_final-netwr = wa_vbap-netwr.
    APPEND wa_final TO it_final.
    CLEAR wa_final.
  ENDLOOP.
ENDFORM.                    " join_tables
*&      Form  alv_output
*       text
*  -->  p1        text
*  <--  p2        text
FORM alv_output .
  CALL SCREEN 2008.
ENDFORM.                    " alv_output
*&      Form  alv_layout
*       text
*  -->  p1        text
*  <--  p2        text
FORM alv_layout .
  wa_layout-grid_title = 'SALES ORDER'.
  wa_layout-zebra = 'X'.
ENDFORM.                    " alv_layout
*&      Form  fieldcatalog_display
*       text
*  -->  p1        text
*  <--  p2        text
FORM fieldcatalog_display .
*  IT_FINAL-VBELN.                    SALES ORDER NUMBER
  CLEAR wa_fcat.
  wa_fcat-col_pos  ='2'.
  wa_fcat-fieldname ='VBELN'.
  wa_fcat-tabname  ='IT_FINAL'.
  wa_fcat-key      = 'X'.
  wa_fcat-just     = 'L'.
  wa_fcat-hotspot  = ' '.
  wa_fcat-lzero    ='X'.
  wa_fcat-seltext ='SALES ORDER NO.'.
  wa_fcat-outputlen   = 15.
  wa_fcat-ref_table ='VBAK'.
  APPEND wa_fcat TO it_fcat.
*  IT_FINAL-POSNR.                    SALES ITEM NUMBER
  CLEAR wa_fcat.
  wa_fcat-col_pos  ='3'.
  wa_fcat-fieldname ='POSNR'.
  wa_fcat-tabname  ='IT_FINAL'.
  wa_fcat-key      = 'X'.
  wa_fcat-just     = 'L'.
  wa_fcat-hotspot  = ' '.
  wa_fcat-lzero    ='X'.
  wa_fcat-seltext ='SALES ITEM NO'.
  wa_fcat-outputlen   = 15.
  wa_fcat-ref_table ='VBAP'.
  APPEND wa_fcat TO it_fcat.
*  IT_FINAL-ERDAT.                    DATE ON WHICH DOCUMENT WAS CREATED
  CLEAR wa_fcat.
  wa_fcat-col_pos  ='4'.
  wa_fcat-fieldname ='ERDAT'.
  wa_fcat-tabname  ='IT_FINAL'.
  wa_fcat-key      = ' '.
  wa_fcat-just     = 'L'.
  wa_fcat-hotspot  = ' '.
  wa_fcat-lzero    ='X'.
  wa_fcat-seltext ='DATE OF CREATION'.
  wa_fcat-outputlen   = 10.
  wa_fcat-ref_table ='VBAK'.
  APPEND wa_fcat TO it_fcat.
*  IT_FINAL-VKORG.                    SALES ORGANIZATION
  CLEAR wa_fcat.
  wa_fcat-col_pos  ='5'.
  wa_fcat-fieldname ='VKORG'.
  wa_fcat-tabname  ='IT_FINAL'.
  wa_fcat-key      = ' '.
  wa_fcat-just     = 'L'.
  wa_fcat-hotspot  = ' '.
  wa_fcat-lzero    ='X'.
  wa_fcat-seltext ='SALES ORG'.
  wa_fcat-outputlen   = 10.
  wa_fcat-ref_table ='VBAK'.
  APPEND wa_fcat TO it_fcat.
*  IT_FINAL-SPART.                    DIVISION
  CLEAR wa_fcat.
  wa_fcat-col_pos  ='6'.
  wa_fcat-fieldname ='SPART'.
  wa_fcat-tabname  ='IT_FINAL'.
  wa_fcat-key      = ' '.
  wa_fcat-just     = 'L'.
  wa_fcat-hotspot  = ' '.
  wa_fcat-lzero    ='X'.
  wa_fcat-seltext ='DIVISION'.
  wa_fcat-outputlen   = 10.
  wa_fcat-ref_table ='VBAK'.
  APPEND wa_fcat TO it_fcat.
*  IT_FINAL-MATNR.                    MATERIAL NUMBER
  CLEAR wa_fcat.
  wa_fcat-col_pos  ='7'.
  wa_fcat-fieldname ='MATNR'.
  wa_fcat-tabname  ='IT_FINAL'.
  wa_fcat-key      = ' '.
  wa_fcat-just     = 'L'.
  wa_fcat-hotspot  = ' '.
  wa_fcat-lzero    ='X'.
  wa_fcat-seltext ='MATERIAL NUMBER'.
  wa_fcat-outputlen   = 20.
  wa_fcat-ref_table ='VBAP'.
  APPEND wa_fcat TO it_fcat.
*  IT_FINAL-NETPR.                    NET PRICE
  CLEAR wa_fcat.
  wa_fcat-col_pos  ='8'.
  wa_fcat-fieldname ='NETPR'.
  wa_fcat-tabname  ='IT_FINAL'.
  wa_fcat-key      = ' '.
  wa_fcat-just     = 'L'.
  wa_fcat-hotspot  = ' '.
  wa_fcat-lzero    ='X'.
  wa_fcat-seltext ='NET PRICE'.
  wa_fcat-outputlen   = 15.
  wa_fcat-ref_table ='VBAP'.
  APPEND wa_fcat TO it_fcat.
*  IT_FINAL-NETWR.                    NAET VALUE
  CLEAR wa_fcat.
  wa_fcat-col_pos  ='9'.
  wa_fcat-fieldname ='NETWR'.
  wa_fcat-tabname  ='IT_FINAL'.
  wa_fcat-key      = ' '.
  wa_fcat-just     = 'L'.
  wa_fcat-hotspot  = ' '.
  wa_fcat-lzero    ='X'.
  wa_fcat-seltext ='NET VALUE'.
  wa_fcat-outputlen   = 15.
  wa_fcat-ref_table ='VBAP'.
  APPEND wa_fcat TO it_fcat.
ENDFORM.                    " fieldcatalog_display
Regards,
Darpana.
Edited by: Darpana Ahire on Dec 3, 2008 7:10 AM
Edited by: Matt on Dec 4, 2008 12:04 PM - added  tags

im99_chs wrote:
I have created a package with some functions in it.Keep in mind that these functions requires PL/SQL code to be executed. Thus it needs a context switch from the SQL engine (executing your view code) to the PL/SQL engine (to do the function call).
This may work fine for smaller data sets. But it does not scale well as context switches are expensive operations with inherent latency. The more switches there are, the bigger the execution time chunk required for context switching.
The ideal is to rather use SQL to perform the work of the function. SQL code can implement if-then-else logic via the DECODE() SQL function and SQL CASE command. Analytical functions can be used for complex aggregation and calculation.
If a user define (PL/SQL) function is needed, then ensure that the function is as fast as possible (minimal moving parts), and consider defining it as a deterministic function if the same input always produces the same output.

Similar Messages

  • BAPI/function module to create/update vendor master data

    Hi
       We are on ECC 50 and have a need to update vendor master data through a programatic interface ( non-dialog ) with ABAP. What is a good function module that can be used to create/update vendor master data - I looked at BAPI_VENDOR_CREATE and did not find any input interfaces that can be passed to this BAPI.
    Previous experiences with the right BAPI for this purpose that can be shared is appreciated. <REMOVED BY MODERATOR>
    Edited by: Alvaro Tejada Galindo on Feb 26, 2008 5:58 PM

    Hi Kiran,
    If you want to load the vendor data into sap its better to go with LSMW batch input program.
    object 0040
    method 0001
    program name RFBIKR00
    Program type B
    this would be a good choice. Recently i did the same.

  • Create, Update and Delete Partner functions for a Functional location.

    Hello
    I have a  requirement where I need to
    a.  Create /  Assign Partner functions to a Functional location,
    b. Update the new  Partners values ( PARNR ) for particular Partner Functions ( Replace new Partner values in place of old partner values )
    c.  Delete the Partner values and Partner functions for a Functional location.
    when the above changes are done, the changes should be reflected in IFLO ( Table-IFLOT ) and IHPA  ( Table-IHPA ) transactions .
    I wanted to make the above changes by using FM's or BAPI. I have searched many forums and threads, but still I was not able to get the correct solution.
    Can anyone help me out in finding BAPI or FM's to do the above changes. ?
    Note : I will have an excel sheet which has coloumns like Functional location, Partner function, Old Partner value ( PARNR ) and New Partner value (PARNR ). This data needs to be updated in IFLO and IHPA.
    Thanks and Regards,
    Karthik Ganti.

    Hello
    I have a  requirement where I need to
    a.  Create /  Assign Partner functions to a Functional location,
    b. Update the new  Partners values ( PARNR ) for particular Partner Functions ( Replace new Partner values in place of old partner values )
    c.  Delete the Partner values and Partner functions for a Functional location.
    when the above changes are done, the changes should be reflected in IFLO ( Table-IFLOT ) and IHPA  ( Table-IHPA ) transactions .
    I wanted to make the above changes by using FM's or BAPI. I have searched many forums and threads, but still I was not able to get the correct solution.
    Can anyone help me out in finding BAPI or FM's to do the above changes. ?
    Note : I will have an excel sheet which has coloumns like Functional location, Partner function, Old Partner value ( PARNR ) and New Partner value (PARNR ). This data needs to be updated in IFLO and IHPA.
    Thanks and Regards,
    Karthik Ganti.

  • Problem with SaveAs function using random paths.

    The Setup:
    Part 1) I have a folder-level script that allows me to perform a SaveAs function from within forms. I do this as a way to save the document quietly in the background. The effect is that the file is overwritten by a copy of itself. The script is:
    var mySaveAs = app.trustedFunction( function(oDoc,cPath,cFlName)
        app.beginPriv();
        cPath = cPath.replace(/([^\/])$/, "$1/");
        try{
            oDoc.saveAs(cPath + cFlName);
        }catch(e){
            app.alert("Error During Save");
        app.endPriv();
    Part 2) From within my documents, I perform the save by calling the function below:
    function runSave()
    {if(typeof(mySaveAs) == "function") {
        var pathArray = this.path.split("/");
        var myFileName = pathArray[pathArray.length-1];
        var cPath = this.path.slice(0,myFileName);
        mySaveAs(this, cPath, myFileName);
    } else {
        app.alert("Missing Save Function\n" + "Please contact forms administrator");
    Part 3) I have several large forms that utilize an autosave to call the save function according to a time interval of 5 minutes, using:
    app.setInterval(runSave(), 300000);
    The Problem:
    Part 1) The autosave feature works fine and it works silently in the background. However, I start to experience problems when I have two forms open at the same time. If, for example, I have a form from one folder open, and open a form from a second folder, the save feature will sometimes save the active document to it's original folder (as intended, overwriting itself and creating an autosave) or sometimes save to the second document's original folder. This leaves me with an updated (autosaved) copy of the document in the wrong folder, and a non-updated copy in the original folder. This seems to vary depending on which document I opened last and/or which document is currently active. Though I can't seem to find the right combination.
    It's as thought the "this.path" is getting confused.
    Part 2) Worse still, if the two documents have the same name, as is often the case with these forms, any incorrect filing when saving causes an overwrite of the second document and loss of data.
    Part 3) To makes things maddening, this also happens at times when no second folder or second document is open. Instead, the misfiling saves the single, active document to a recently accessed folder. For example, I'll open a local folder and open a Word doc, close the doc and the folder, go to a different folder in a different root (a networked folder), open the form, and it autosaves to the local machine in the folder with the Word doc. So now not only do I have a non-updated copy in my correct folder, I have no idea where the updated copy was actually saved to until I come across it some time later.
    Part 4) Again, worse still, the previously accessed folder might happen to be one that contains a document with the same name, and that document gets overwritten by the autosave. I'll have no idea that the form has been overwritten until I happen to open it some time later and see that it contains data from a totally different form.
    What is going on and how do I stop it?
    Adobe Acrobat X Pro on a PC.

    Thank you, that is helpful to understand. I'd like to keep it as 3 parameters, as all my documents currently output 3 to the trusted function. And I'd still like to keep the error catch, but I'm not sure why the previous trusted function from the tutorial is no longer working, so I just want to run this by you:
    safeSaveAs = app.trustPropagatorFunction(function(theDoc,thePath,theFileName){
        app.beginPriv();
        var fullPath = (thePath + theFileName);  
        try {
            theDoc.saveAs({cPath:fullPath});
        } catch(e) {
            app.alert("Error During Save");
        app.endPriv();
    myTrustedSaveAs = app.trustedFunction(function(theDoc,thePath,theFileName){
            app.beginPriv();
            safeSaveAs(theDoc,thePath,theFileName);
            app.endPriv();

  • Google Analytics OPT-OUT Browser Add-on 0.9.6 doesn't retain OPT-OUT settings...never did really. Also JAVA now refuses to create updates for WinXP/FireFox.

    I use PaleMoon now trying to get rid of advertising sharks. I have WINXP still - need assistive-technology computer for pain so taking time on getting new computer.
    I have been severely sabotaged by advertising conglomerates selling my private information. They have no right -yet they do whatever they want. Anyhow...I've tried to OPT-OUT of EVERYTHING POSSIBLE. I've tried 5 places found. Google, NAI, DAA, & FIREFOX HELP said go to about:config was instructed to turn "from false to true" the "privacy.tracking.protection.enabled" .But I couldn't keep this setting because this also has to be set to false to use any saved log-on's to my accounts., and add-on AD BLOCK PLUS 2.6.7 when I was on Firefox & had some ticks and now it is disabled because it won't work with PaleMoon 25.2.1
    This case is about GOOGLE OPT-OUT. Starting here: http://www.google.com/settings/ads?hl=en&sig=ACi0TCgWymel0CNWxdcnEWPzWNs9wDd7cVQHxHsmtz4w30CAyHk7MqyzzZdGh3m6FpDaJsKmunTLEvJZY5LAm3h6gIdzE30L-Q
    There are 2 columns. The left one "ADS ON GOOGLE" NEVER RETAINS AFTER LOG-OFF. The right column "Google ads across the web
    " seems to retain sometimes - if I remember right it falls off after a period of time as opposed to after just LOGGING-OFF. Below the columns there are options, but I don't have a GOOGLE ACCOUNT.
    Also down there is this link: https://support.google.com/adsense/troubleshooter/1631343?hl=en ...you see the box with this: Advertising industry program participation
    Google is a participating member of groups that have developed industry privacy standards like the Ad-Choices icon for online advertising.
    Group Location
    Network Advertising Initiative United States
    Digital Advertising Alliance (DAA) United States
    European Digital Advertising Alliance Europe
    Digital Advertising Alliance of Canada Canada
    ....I clicked OPTED OUT FOR NAI on their link http://www.networkadvertising.org/
    ...I clicked OPTED OUT FOR DAA on their link http://www.aboutads.info/
    ...I clicked PROTECT MY CHOICES and downloaded the app.
    These 1st 2 links used to have the same trouble and didn't retain ANYTHING and wouldn't re OPT-OUT ANY UNTIL THEY WERE SATIATED - saying I didn't have 3rd party cookies allowed when I did - this took hours.
    I sent numerous trouble reports to them that they ignored - then I think I sent one to Firefox and it is much better but still not completely right. Today DAA retains 106 out of 122 and if I repeatedly RE-OPT-OUT successively I can get it to 121 out of 122 - never completely. (currently the one not taking is Accuen Inc. but it changes periodically - makes me think they set one up to take my info and then share it with all of them - lol )
    Same for NAI currently I started with 94 out of 96 - next re-OPTED-OUT got it to 95 out of 96 and no further and same co. Accuen Inc (accuenmedia.com ) wouldn't update.
    NOTE: I was copy/pasting the list of NON-OPT-OUT'S to them and my own document file to try and find trends/problems...now NAI programmers protected the list from being able to be COPIED AND PASTED!!! That's the opposite of being open and interested in making this work, right? Why would they want to allow us to OPT-OUT of their criminal espionage behavior...RIGHT? (lol) FYI: I recorded that the big one that was always retained before this one was...MEDIA MATH INC.
    MANY Opt-outs would drop off while on-line and ALL would drop-off once logged-off. Now it's retaining most once logged off - but it hasn't been long enough to tell if they'll fall back into their bad habits as they've done before...
    This has been going on forever for me - I've been reporting this malfunction since 2013.
    Of course I downloaded PROTECT MY CHOICES FOR FIREFOX via NAI AND DAA'S links ...http://www.aboutads.info/PMC#protect-your-choices-for-firefox ............they both go to the same place???.....PROTECT MY CHOICES http://www.aboutads.info/plugin/install/firefox....that seems odd...it's as if they are the same entity then. ABOUTADS is DAA'S WEBSITE. NAI'S IS NETWORKADVERTISING.ORG so why would NAI use DAA'S PROTECT MY CHOICES app?
    Lastely, I also requested that the COOKIES NAMES BE UNIFORMLY IDENTIFIABLE. All the OPT-OUT COOKIES that are to be forevermore retained on my computer and that I am to trust the EVERY FUNCTION OF - well they all have different COOKIE NAMES!! Most of the names you can not tell that they are OPT-OUT COOKIES!! - SO NOWWW They have created another problem.
    We can no longer just "DELETE ALL COOKIES".
    PLUS, we can no longer go through our cookies and delete individual ones that snuck through.
    Every one of the OPT-OUT COOKIES SHOULD SAY "OPT-OUT" IWITHIN THEIR NAME OF THEIR COOKIE - PERIOD. RIGHT? (LOL) For real. Why was this mess was allowed?
    REALLY IN MY OPINION THESE COMPANIES SHOULD BE BLOCKED AT THE LOCAL PHONE COMPANIES LEVEL - IN OUR SERVERS. We should not have to deal with them. Same thing with viruses, malware and such beasts. But I digress.
    In summary:
    1.)Google Analytics OPT-OUT Browser Add-on 0.9.6 doesn't retain OPT-OUT settings
    2.) JAVA refuses to create updates for WinXP/FireFox/PaleMoon.
    3.) DAA & NAI still don't retain ALL OPT-OUT settings and never completely OPT-OUT all companies.
    4.) OPT-OUT cookies should be uniformly names with the words OPT-OUT in their titles.
    5.) Ad Block Plus 25.6.7 doesn't work for Pale Moon and there is no alternative - (didn't work great in FireFox)
    Right now I'm mainly interested in #1)retaining my GOOGLE OPT-OUTS while on line AND while logged off since it is attacking my computer and steeling all the speed until it freezes my keyboard.
    Currently I am trying to remember to run through 3. OPT-OUTS every time I log on.
    Thanks so much!

    hello, palemoon's support forums are here: http://forum.palemoon.org/

  • Is there a save function for online forms?

    Hi, I've created an online form which requests quite a lot of information from those who it is sent to.  Because of its size, I have made use of the skip logic rules to so that users can quickly skip sections that don't apply to them.  Notwithstanding this, the form asks questions which users may need to reseach and come back to so it wouldbe really useful if the form had a save function.  Does anyone know if such a function exists and if not, whether there are there imminent plans to develope one?
    If not, regreattably I will have to try and find another solution for online information gather that has a save and return function.

    hi randy
    I wholely support the request for a save feature for online forms, any idea of an ETA for this?
    Also to expand on this- the ability to print the  web form would be brillant.
    a few options for the  web forms submit to print, save.
    Web forms after/before  submission maybe to save as a pdf locally -  which then could be printed out.

  • How to create the INBOUND Function Module for INBOUND IDOCs

    Hi Friends,
    Can any Suggest me How to proceed to Create an INBOUND Function Module for Processing the INBOUND IDOCS
    which are recieved from XI Server ?
    I am working in SAP-ISU
    Here i will recieve the INBOUND IDOCs for the Meter Reading Orders.
    We have a Standard INBOUND FUNCTION MODULE
    IDOC_INPUT_ISU_MR_UPLOAD
    which Uploads the Meter Reading Results.
    I copied the Same function Module into ZIDOC_INPUT_
    and working on it.
    Can any one suggest me, whether i am going in correct way or not.
    In IDOC_INPUT_ISU_MR_UPLOAD Inbound fun module,
    BAPI_MTRREADDOC_UPLOAD is used to Update or Insert the Meter Reading Results,
    My requirment is to Insert and Update the Meter Reading Orders which are Inbounded from XI.
    Can I Use the Same BAPI
    BAPI_MTRREADDOC_UPLOAD
    to Update the below fields,
    EABL-SERNR
    EABL-ZWNUMMER
    EABLG-ABLESGR
    EABL-V_ZWSTAND
    EABL-N_ZWSTAND
    EABL-ABLHINW
    EABL-ZSKIPC
    EABL-ADAT
    EABL-ATIMTATS
    EABL-ADATTATS
    EABL-ATIM
    EABL-ZMESSAGE
    EABL-ABLESER(Meter reader number)
    Kindly Suggest me,
    Thanks in Advance,
    Ganesh

    Hello Ganesh
    I think you are going completely astray with you z-function module for IDoc processing.
    If you look at TABLES parameter METERREADINGRESULTS (type BAPIEABLU ) of BAPI_MTRREADDOC_UPLOAD you will find many of the requested fields already:
    EABL-SERNR => BAPIEABLU-SERIALNO
    EABL-ZWNUMMER =>REGISTER
    EABLG-ABLESGR
    EABL-V_ZWSTAND
    EABL-N_ZWSTAND
    EABL-ABLHINW
    EABL-ZSKIPC
    EABL-ADAT
    EABL-ATIMTATS => ACTUALMRTIME
    EABL-ADATTATS => ACTUALMRDATE
    EABL-ATIM
    EABL-ZMESSAGE
    EABL-ABLESER(Meter reader number)
    Field EABL-ZMESSAGE appears to be custom field (at least I cannot find it on ECC 6.0). If this field was added using include CI_EABL then you probably can get these values into the BAPI using the EXTENSIONIN parameter.
    Check routine CHECK_UPLOADRECORDS in the BAPI which allows two extension structures:
    - BAPI_TE_EABL
    - BAPI_TE_EOSB
    Not surprisingly BAPI_TE_EABL contains the include CI_EABL.
    Regards
      Uwe

  • How to create a Z Function Module

    Hi,
      I am trying to create a Z function module in BI 7.0 that i can use in Transformations.
    SE37> Name of FM.Create..>
    It is prompting me to enter Function Group.
    What is Function Group and How can i create a new function group (Detail Steps please)
    and steps involved in creating a Function Module in BI 7.0
    Thanks in Advance

    Hi,
    Function Group is just like a folder under which we can store n no. of function modules for organizational purpose. If u want any global declarations we will declare at function Group Level.
    It is mandatory to save a function module under one function group. Select Goto menu item, select Function Group, then select, create function group in SE37. Just give the technical name and description and save.
    Hope this helps u..
    Regards
    Ramakrishna Kamurthy

  • Update partner function in KNVP table using FM sd_customer-maintain_all

    Hi All,
    I have to update Partner Function ‘PARVW’  in KNVP table using FM sd_customer_maintain_all.
    I had already created a BDC program for updating which is running successfully.
    But  my requirement is to create a BAPI using FM customermaintain_all.
    Ex:  Tcode VD02
              KUNNR          PARVW             KUNN2
    Old data      123          Z1          70006666
              123          Z2          70007777
    Req. output      123          Z1          70006666
              123          Z1          70007777
    PARVW ‘Z2’  should not exist after updation.
    When updating, I am getting the error message to my inbox as
    “ Error Info...   F2 802: System error in table KNVP ”
    The above error is triggered while committing work after execution of  ‘SD_CUSTOMER_MAINTAIN_ALL’.
    The options I tried while looping at internal table containing kunnr, parvw & kunn2
    CALL FUNCTION 'SD_CUSTOMER_MAINTAIN_ALL'
    EXPORTING
        I_KNA1                              = w_kna1
      I_KNB1                              =
        I_KNVV                              = w_knvv
      I_BAPIADDR1                         =
      I_BAPIADDR2                         =
      I_MAINTAIN_ADDRESS_BY_KNA1          = ' '
      I_KNB1_REFERENCE                    = ' '
      I_FORCE_EXTERNAL_NUMBER_RANGE       = ' '
      I_NO_BANK_MASTER_UPDATE             = ' '
      I_CUSTOMER_IS_CONSUMER              = ' '
      I_RAISE_NO_BTE                      = ' '
        PI_POSTFLAG                         = 'X'
      PI_CAM_CHANGED                      = ' '
      PI_ADD_ON_DATA                      =
      I_FROM_CUSTOMERMASTER               = ' '
    IMPORTING
      E_KUNNR                             =
      O_KNA1                              =
      E_SD_CUST_1321_DONE                 =
    TABLES
      T_XKNAS                             =
      T_XKNBK                             =
      T_XKNB5                             =
      T_XKNEX                             =
      T_XKNVA                             =
      T_XKNVD                             =
      T_XKNVI                             =
      T_XKNVK                             =
      T_XKNVL                             =
        T_XKNVP                             = I_XKNVP
      T_XKNZA                             =
      T_YKNAS                             =
      T_YKNBK                             =
      T_YKNB5                             =
      T_YKNEX                             =
      T_YKNVA                             =
      T_YKNVD                             =
      T_YKNVI                             =
      T_YKNVK                             =
      T_YKNVL                             =
        T_YKNVP                             = i_yknvp ***
      T_YKNZA                             =
      T_UPD_TXT                           =
    EXCEPTIONS
        CLIENT_ERROR                        = 1
      KNA1_INCOMPLETE                     = 2
      KNB1_INCOMPLETE                     = 3
      KNB5_INCOMPLETE                     = 4
      KNVV_INCOMPLETE                     = 5
      KUNNR_NOT_UNIQUE                    = 6
      SALES_AREA_NOT_UNIQUE               = 7
      SALES_AREA_NOT_VALID                = 8
      INSERT_UPDATE_CONFLICT              = 9
      NUMBER_ASSIGNMENT_ERROR             = 10
      NUMBER_NOT_IN_RANGE                 = 11
      NUMBER_RANGE_NOT_EXTERN             = 12
      NUMBER_RANGE_NOT_INTERN             = 13
      ACCOUNT_GROUP_NOT_VALID             = 14
      PARNR_INVALID                       = 15
      BANK_ADDRESS_INVALID                = 16
      TAX_DATA_NOT_VALID                  = 17
      NO_AUTHORITY                        = 18
      COMPANY_CODE_NOT_UNIQUE             = 19
      DUNNING_DATA_NOT_VALID              = 20
      KNB1_REFERENCE_INVALID              = 21
      CAM_ERROR                           = 22
        OTHERS                              = 23.
    IF sy-subrc eq ‘0’.
    Commit work and wait.
    Endif.
    All above tables have a field called ‘KZ’ which has options
    U-update
    D-delete
    I-insert
    E-………(I don’t know)
    Ex: T_XKNVP structure = KNVP Structure + Field ‘KZ’.
    Documentation for this FM is not Available in English or German
    1.  I tried sending Z2  KZ as ‘D’ first &  Z1 with KZ as ‘I’ with business partner of Z2 (KUNN2)
         as single update.
    Ex: T_XKNP table
    KUNNR          PARVW             KUNN2          KZ
    123          Z2          70007777     D
    123          Z1          70007777     I
    2.  I tried it as a separate delete record and insert record i.e calling the FM twice .
    3.  I tried passing table  T_YKNVP with old partner data + TXKNVP table new partner data
    Ex: T_YKNP table
    KUNNR          PARVW             KUNN2          KZ
    123          Z2          70007777     U or space (I tried both one after another)
    4. All combinations for field ‘KZ’  are tried.
    Please help me to overcome this problem.
    I )   I need which parameters are to be passed to FM for updating partner function in KNVP table .
    II)   Do I need to pass structure I_KNA1 or I_KNVV to FM ? (Blank or with values corresponding to   
         partner function ).
    III)  Any sample code which can guide me.
    Even a small hint or clue from you will certainly help me.
    Thanks in Advance.
    AJAX

    i have the same problem. I need to update the partner function PARVW thru a program that i created. I tried to use this FM but it didn't work. Anyone knows another FM that i can use to update the KNVP table?

  • Safari question here... Can I purchase a browser update for my mac book? I have OSX 10.6.8 and the "update softdate" function won't let me get past Safari 5.1.10. Please tell me I don't need a new computer just yet... Thx!!

    Safari question here... Can I purchase a browser update for my mac book? I have OSX 10.6.8 and the "update software" function won't let me get past Safari 5.1.10. Please tell me I don't need a new computer just yet... Thx!!

    You need to upgrade OS X.
    Upgrading to Yosemite
    You can upgrade to Yosemite from Lion or directly from Snow Leopard. Yosemite can be downloaded from the Mac App Store for FREE.
    Upgrading to Yosemite
    To upgrade to Yosemite you must have Snow Leopard 10.6.8 or Lion installed. Download Yosemite from the App Store. Sign in using your Apple ID. Yosemite is free. The file is quite large, over 5 GBs, so allow some time to download. It would be preferable to use Ethernet because it is nearly four times faster than wireless.
        OS X Mavericks/Yosemite- System Requirements
          Macs that can be upgraded to OS X Yosemite
             1. iMac (Mid 2007 or newer) - Model Identifier 7,1 or later
             2. MacBook (Late 2008 Aluminum, or Early 2009 or newer) - Model Identifier 5,1 or later
             3. MacBook Pro (Mid/Late 2007 or newer) - Model Identifier 3,1 or later
             4. MacBook Air (Late 2008 or newer) - Model Identifier 2,1 or later
             5. Mac mini (Early 2009 or newer) - Model Identifier 3,1 or later
             6. Mac Pro (Early 2008 or newer) - Model Identifier 3,1 or later
             7. Xserve (Early 2009) - Model Identifier 3,1 or later
    To find the model identifier open System Profiler in the Utilities folder. It's displayed in the panel on the right.
         Are my applications compatible?
             See App Compatibility Table - RoaringApps.
    Upgrading to Lion
    If your computer does not meet the requirements to install Mavericks, it may still meet the requirements to install Lion.
    You can purchase Lion at the Online Apple Store. The cost is $19.99 (as it was before) plus tax.  It's a download. You will get an email containing a redemption code that you then use at the Mac App Store to download Lion. Save a copy of that installer to your Downloads folder because the installer deletes itself at the end of the installation.
         Lion System Requirements
           1. Mac computer with an Intel Core 2 Duo, Core i3, Core i5, Core i7,
               or Xeon processor
           2. 2GB of memory
           3. OS X v10.6.6 or later (v10.6.8 recommended)
           4. 7GB of available space
           5. Some features require an Apple ID; terms apply.

  • Creating / updating vendor master from CREMAS03

    Hi All,
    I am getting vendor master data from external system and SAP XI will convert this into Idoc of message type CREMAS03. I would like to create/update vendor master in R/3 system from Idoc CREMAS03. Which function module / BAPI will cater to this need.
    Thanks and best regards
    Kalingeri

    Hi
    Check in WE57 using the Message type & Idoc type & direction.
    IDOC_INPUT_CREDITOR & IDOC_INPUT_CREDITOR_MDM are the the two Func modules being used. You can use any one of them based on your reuirement
    Thanks & Regards
    Kishore

  • Created/Updated User in Apex 4.0 does not match valid application users

    We are working on a new install of Apex 4.0 - new application and seeing some odd values on the page details.
    For many of the first pages in the application (1-20 and 101), click to get Page Attributes then the Name tab. The yellow box on the bottom shows each page as:
    Created: 5 weeks ago - ADMIN
    Updated: 10 months ago - <Name varies per below>
    Pages 1/5 = DEMO
    Pages 2/4 = SBKENNED
    Pages 6-10 = SBKENNED
    Page 20 = DPEAKE
    Page 101 = MIKE
    The rest of the pages have our normal developer and dates.
    Not a huge deal, but looks very odd.

    Custom Authentication is behaving like an End User account, which is good - no developer tabs at the bottom. I used something similar to Chapter 11 of the Advanced Tutorials guide:
    CREATE OR REPLACE FUNCTION acl_custom_auth (
    p_username IN VARCHAR2,
    p_password IN VARCHAR2)
    RETURN BOOLEAN IS
    BEGIN
    FOR c1 IN (SELECT 1
    FROM acl_employees
    WHERE upper(userid) = upper(p_username)
    AND upper(last_name) = upper(p_password))
    LOOP
    RETURN TRUE;
    END LOOP;
    RETURN FALSE;
    END;
    /

  • BAPI or FM to create/update variant configuration

    Is there a BAPI or FM to create/update variant configuraion?
    There is one for sales order BAPI_SALESORDER_CREATEFRONDAT1 to create VC while creating SALES order.
    How do you do create VC while creating PO?
    Thanks.

    HI,
    There are two different Function Modules used to create service product and material product in CRM system.
    CRMXIF_PRODUCT_MATERIAL_SAVE for creating product of type material
    and CRMXIF_PRODUCT_SERVICE_SAVE for creating product of type service.
    Regards,
    PP

  • Interactive Gantt chart & save functionality

    I've been trying to develop an interactive Gantt chart within Web Dynpro ABAP. Things have been going fine and altough there doesn't seem to be much documentation available, I've managed to get a simple Gantt chart WD application up and running.
    The following is said in the documentation:
    "It is possible to store changes made within the displayed Gantt chart as data structures again in the back end."
    I understand this that if I do changes to the Gantt chart, I should be able to "track" these changes in my code (and for example save the changes to database or whatever). Anyhow, I am not able to get this done. I've put break points to the event handler methods, and read the XML from the context node, but the XML has not changed.
    I also enabled the SAVE functionality for the Gantt (in the XML), which made the Save-button visible. If I click the save-button, I would assume that at this point the XML is updated with the refreshed chart data. Anyhow, this does not seem to happen. The XML seem to have lost the relevant part of it (=basically everything under the <graph> tag, which would include the changes (this same problems was addressed also before: Interactive Gantt chart - how to receive updated XML after user changes)).
    Any hints are welcome. I guess that this should not be impossible. I assume that for example in cProjects (which uses Gantt chart a lot) is using this functionality - unfortunately I don't have an access to a cProjects system.
    Kind regards,
    Karri

    Long time, hah..
    Anyways thanks to behave like a responsible person on SCN and taking care of your threads..
    Liked.

  • How Create procedure or function with ADO ?

    Hello,
    How Create procedure or function with ADO?It's my question.
    Thanks.
    Henri

    This message if post by Taiwan-ChangHaw-Oracle-Stored-Procedure-For-Business-Rule-Club
    public bool ConnectDatabase()
    try
    { string strConnectionString =
    "Provider=OraOLEDB.Oracle" +";"+
         "Data Source=" + ConnectionParams.Datasource +";"+
    "User Id =" + ConnectionParams.Username +";"+
    "Password =" + ConnectionParams.Password;
         m_conn=new ADODB.Connection();
         m_conn.ConnectionString=strConnectionString;
         m_conn.Open("","","",0); //i_"YYAOl Open the connection
    catch(Exception e)
    {     System.Windows.Forms.MessageBox.Show(e.Message);
         return false;
    return true; //YYAOl_B>3I9&connected successfully
    public void InsertDescription(string p_product,string p_language,string p_tname,string p_tdescription)
    { string sql="{Call inserttranslateddescription(?,?,?,?,?)}";
    try
    { ADODB._Command cmd=new ADODB.Command();//Create a command object
    cmd.ActiveConnection=m_conn; //Set its active connection to open connection
    ADODB.Properties properties=cmd.Properties;//Get the command properties into ADODB Properties object
    IEnumerator ienum=properties.GetEnumerator();//Get an enumerator on above properties
    ADODB.Property singleprop;
    while(ienum.MoveNext()) //iterate through the enumerator
         {singleprop=(ADODB.Property)ienum.Current;//Get the current property from enumerator
         string propname= singleprop.Name; //Get the name of current property
         if(propname.Equals("NDatatype")) //if the property is 'NDatatype' set its value to true
         singleprop.Value=true;
    cmd.CommandType=ADODB.CommandTypeEnum.adCmdText;
    int pid=Int32.Parse(p_product);
    ADODB._Parameter langid     =cmd.CreateParameter("langid",          ADODB.DataTypeEnum.adChar,ADODB.ParameterDirectionEnum.adParamInput, 100,p_language);
    ADODB._Parameter productid =cmd.CreateParameter("productid",     ADODB.DataTypeEnum.adNumeric,ADODB.ParameterDirectionEnum.adParamInput, 100,pid);
    ADODB._Parameter tname =cmd.CreateParameter("tname",          ADODB.DataTypeEnum.adBSTR,ADODB.ParameterDirectionEnum.adParamInput, 50,p_tname);
    ADODB._Parameter tdescription=cmd.CreateParameter("tdescription",ADODB.DataTypeEnum.adBSTR,ADODB.ParameterDirectionEnum.adParamInput, 50,p_tdescription);
    ADODB._Parameter check          =cmd.CreateParameter("check",          ADODB.DataTypeEnum.adNumeric,ADODB.ParameterDirectionEnum.adParamOutput,100,0);
    cmd.Parameters.Append(langid);
    cmd.Parameters.Append(productid);
    cmd.Parameters.Append(tname);
    cmd.Parameters.Append(tdescription);
    cmd.Parameters.Append(check);
    cmd.CommandText=sql;
    //Execute the command to insert product details in database
    object recs;
    object param=p_language;
    cmd.Execute(out recs,ref param,1);
    ienum.Reset();
    while(ienum.MoveNext()) //iterate through enumerator
    { singleprop=(ADODB.Property)ienum.Current;//Get the current property in to Property object
    string propname= singleprop.Name; //Get the name of current property
    if(propname.Equals("NDatatype")) //if it is 'NDatatype' set its value to true
    singleprop.Value=false;
    IEnumerator iprop=cmd.Parameters.GetEnumerator();//Get the enumerator for command parameters
    while(iprop.MoveNext()) //loop through enumerator
    { //Get the current parameter in enumerator
    ADODB._Parameter checkval=(ADODB._Parameter)iprop.Current;
    if(checkval.Name.Equals("check")) //if the parameter is 'check'
    if(checkval.Value.ToString().Equals("0")) //If check's value is zero data was inserted
    System.Windows.Forms.MessageBox.Show("Product details Inserted successfully");
    else
    System.Windows.Forms.MessageBox.Show("Product Details Updated");//else data was updated
    catch(Exception e)
    System.Windows.Forms.MessageBox.Show(e.Message);//Display any error message
    }

Maybe you are looking for