Issues validating code with lightbox title customization

I'm getting some fairly odd validator errors http://validator.w3.org/check?uri=http%3A%2F%2Fwww.strikingsites.com%2F&charset=%28detect+ automatically%29&doctype=Inline&group=0&user-agent=W3C_Validator%2F1.1
Here is a snippet of one of the images that are causing the errors:
Example
<a href="images/home_work1FULL.jpg;" rel="lightbox[1]" title="Logo design, brand identity and web design for Transplete &lt;a href=&quot;http://www.transplete.com&quot TARGET=&quot;_blank&quot&gt;Visit Site&lt;/a&gt;" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('work1','','images/home_work1HOVER.jpg',1)"><img src="images/homeWORK1.jpg" alt="Striking Sites Web Design" name="work1" width="144" height="86" border="0" id="work1" /></a>
Basically I am trying to have rollover images linked open using lightbox javascript and have links in the caption. Note that I'm just building the site, so none of the links work, but it can be viewed at http://www.strikingsites.com.
Thanks all

sorry guys, here is the code that needs help:
Example
<a href="images/home_work1FULL.jpg;" rel="lightbox[1]" title="Logo design, brand identity and web design for Transplete &lt;a href=&quot;http://www.transplete.com&quot TARGET=&quot;_blank&quot&gt;Visit Site&lt;/a&gt;" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('work1','','images/home_work1HOVER.jpg',1)" ><img src="images/homeWORK1.jpg" alt="Striking Sites Web Design" name="work1" width="144" height="86" border="0" id="work1" /></a>

Similar Messages

  • Apple needs more information to complete your iMessage registration. Please call AppleCare in your country (listed below) and provide them with the following validation code:

    When I try to open imessage on my Macbook Pro I get the message "Apple needs more information to complete your iMessage registration. Please call AppleCare in your country (listed below) and provide them with the following validation code:"  Then it makes me call a number for AppleCare whish then makes me buy a $19 incident care. 
    I message has worked on this machine and works on my macbook air.  What is happening?
    Charles

    Hi,
    Apple Care Level one responders are very Script Led.
    This means they try to fit what you are saying into a Software or Hardware issue and into a Apple Care Period or  not.
    If you are having problems convincing them it is an Account/Apple ID problem (even though it only effects the Mac's use of it in iMessages) ask to speak to a Level 2 person who should be more knowledgeable because fixing and Id issue is free and not subject to Apple Care.
    9:00 pm      Monday; December 15, 2014
    ​  iMac 2.5Ghz i5 2011 (Mavericks 10.9)
     G4/1GhzDual MDD (Leopard 10.5.8)
     MacBookPro 2Gb (Snow Leopard 10.6.8)
     Mac OS X (10.6.8),
     Couple of iPhones and an iPad

  • Apple needs more information to complete your iMessage registration. Please call AppleCare in your country (listed below) and provide them with the following validation code:  3384-1797-2190

    I tried to use iMessage on my MacBook Air but i get the following message
    Apple needs more information to complete your iMessage registration. Please call AppleCare in your country (listed below) and provide them with the following validation code:
    3384-1797-2190

    Hi,
    Apple Care Level one responders are very Script Led.
    This means they try to fit what you are saying into a Software or Hardware issue and into a Apple Care Period or  not.
    If you are having problems convincing them it is an Account/Apple ID problem (even though it only effects the Mac's use of it in iMessages) ask to speak to a Level 2 person who should be more knowledgeable because fixing and Id issue is free and not subject to Apple Care.
    9:00 pm      Monday; December 15, 2014
    ​  iMac 2.5Ghz i5 2011 (Mavericks 10.9)
     G4/1GhzDual MDD (Leopard 10.5.8)
     MacBookPro 2Gb (Snow Leopard 10.6.8)
     Mac OS X (10.6.8),
     Couple of iPhones and an iPad

  • Secure connection failed: The Certifying Authority for this certificate is not permitted to issue a certificate with this name. (Error code: sec_error_cert_not_in_name_space) PLEASE HELP ME!!

    I have gone to this website almost everyday for years and I have not changed anything in my internet settings, but now I'm getting this message: secure connection failed: The Certifying Authority for this certificate is not permitted to issue a certificate with this name. (Error code: sec_error_cert_not_in_name_space) The only thing I KNOW I did differently, was I installed a CAC reader to my computer, since then, this has been happening. Is there a setting I can change?? E-mail is: [email protected] Thanks! Megan

    There were recently several users getting this error code who use AVAST 2015. If you recently got that program, please see:
    * [https://support.mozilla.org/questions/1029578 Can NOT access https://www.google.com for google voice, mail etc.]
    * [https://support.mozilla.org/questions/1028985 Avast Forum connection failed - works in Chrome etc.]
    * [https://support.mozilla.org/questions/1028190 Since last FF update I can't sign out of Yahoo and when I close FF it tells me it has crashed.]

  • TS1292 I have four $50 iTunes gift cards. I am not able to load any of the codes into my new iPad account. I know I have not made any mistakes with typing in the 16 digit code. I keep getting the "code you entered is not recognized as a valid code" messag

    I have tried all I can to load iTunes cards into my iPad without success. Upon giving one of the cards to a friend he conveniently loaded. I keep getting the error message: "The code you entered is not recognized as a valid code". I just don't know what to do as I need to use these cards to make purchases off the I tunes store.

    i tried with out using commmit but it is not creating Status.
    When i see the function module help and they are trying to COMMIT
    FU STATUS_OBJECT_CREATE
    Short Text
    Create Status Object
    Functionality
    The function module generates a status object.
    Take the object number from the object number management (function modules OBJECT_NUMNBER_GET_xx).
    If no object number is given, the module takes a temporary object number that must be replaced later (function module STATUS_OBJECT_SWITCH_NUMBER).
    Example
    Creating an internal order with number 100123 (object type "ORC") for status profile "STATSCHEM" with final object number
    call function 'OBJECT_NUMBER_GET_OR'
      exporting
        aufnr = '100123'
      importing objnr = objektnummer.
    call function 'STATUS_OBJECT_CREATE'
      exporting
        objnr = objektnummer
        obtyp = 'ORC'
        stsma = 'STATSCHEM'.
    commit work.
    Creating the same order with a temporary object number
    data: objectkey like ionra.
    * TBO00-REFSTRUCT for object type 'OR' is 'IONRA'
    objectkey-aufnr = '100123'.
    call function 'STATUS_OBJECT_CREATE'
      exporting
        i_objectkey = objectkey
        obtyp       = 'ORC'
        stsma       = 'STATSCHEM'.
      importing
        objnr       = objektnummer.
    call function 'OBJECT_NUMBER_GET_OR'
      exporting
        aufnr = '100123'
      importing objnr = objektnummer_neu.
    call function 'STATUS_OBJECT_SWITCH_NUMBER'
      exporting
        objnr_old = objektnummer
        objnr_new = objektnummer_neu.
    commit work.
    Notes

  • How to create 2 transaction codes for same report program with diff title

    Hi All -
      I have created report program and create 2 transaction codes with different short description. I want to display the Tcodes decriptions instead of program attributes title.
    Can anyone pls tell me how to do this?
    Thanks,
    Kannan

    Hi Kannan,
    define 2 titlebars t1 and t2 for the report. In report initialization,
    IF sy-tcode = 't1'
      SET TITLE t1.
    ELSE.
      SET TITLE t2.
    ENDIF.
    Regards,
    Clemens

  • Insert valid sim with no pin code

    i buyed iphone 4s ....i updated it to ios 5.0.1 now it starts from start screen and says insert valid sim with no pin code....what does this mean i inserted many sim cards but not working ....m stuck at activation screen n cant do anything...my baseband is 1.0.13 and having model 9A405

    It is what I thought already. The problem is, that when you buy a second hand iPhone, you never know what someone did to it. A jailbroken iPhone you should never try to update, because then it won't work anymore. You can use it, but NEVER try to update. This was a painful lesson, I feel for you. In this forum you will not find any halp on this problem. You may try in some other forum perhaps.

  • Issues scanning QR codes with messenger

    Anyone else having problems scanning QR codes with BB Messenger? I can scan the code and the phone makes the beep to confirm the code has been read, but then the link never appears.

    Sorry, no answer for you, but if anyone is looking for a QR Code scanner, I recommend the following one from JaredCo.  I've tried a couple different ones and this one seems to be the best, in my opinion.
    http://appworld.blackberry.com/webstore/content/13962?lang=en
    - If my response has helped you, please click "Options" beside my post and mark it as solved. Clicking the "thumbs up" icon near the bottom of my response would also be appreciated.

  • Need sample code with RV_INVOICE_CREATE used

    Hi everybody!
    I need sample code with RV_INVOICE_CREATE or similar FMs used.
    The thing is that I do not know how to populate parametres of this and other invoicing FMs....
    For example, there are some tables to be passed to RV_INVOICE_CREATE
         TABLES
              XKOMFK     = XKOMFK
              XKOMV       = XKOMV
              XTHEAD      = XTHEAD
              XVBFS        = XVBFS
              XVBPA        = XVBPA
              XVBRK        = XVBRK
              XVBRP        = XVBRP
              XVBSS        = XVBSS
    How to populate them? I mean how to fill them with needed values?
    Useful answers will be awarded.
    Kind regards, M.

    RV_INVOICE_CREATE is the function module to create invoice based on delivery .
    when you pass delivery number ,it will create invoice ,see the invoice number in vf02,vf03 transaction. and also see the data vbrk,vbrp tables
    I have done this development and i have cancelled invoice,reverse goods issue,updated the delivery and again i am createing invoice..see the below progrm to get better understanding.
    REPORT ZWM_OVERWEIGHT_FIX  no standard page heading
                               message-id zwm.
    ======================================================================
    Program Name : ZWM_OVERWEIGHT_FIX                                    *
    Description  : Tool to fix Overweight in delivery line item,         *
                   Used All Function module to cancel invoice ,          *
                   Reverse the goods issue  ,Update Delivery qty,Create  *
                   invoice                                               *
    Author       : Seshu                                                 *
    Date         : 05/08/2007                                            *
    MODIFICATION HISTORY                                                 *
    DATE    | AUTHOR   | CHANGE #   | DESCRIPTION OF MODIFICATION        *
    --|||--
    05/08/07| Seshu    | DEVK921979 | Initial                            *
    D A T A - D E C L A R A T I O N     *******************
    Tables
    Tables : vbak,
             vbap,
             vbfa,
             likp,
             lips,
             vbrk,
             vbrp.
    Internal Tables
    data : i_lips like lips occurs 0 with header line,
           i_vbap like vbap occurs 0 with header line.
    Variables
    data : v_deliv like vbfa-vbelv,
           v_invoic like vbfa-vbelv.
    Data Declaration Part for Post Goods Issue
    DATA: l_vbeln LIKE likp-vbeln,
          l_vbkok LIKE vbkok,
          i_prot LIKE prott OCCURS 0 WITH HEADER LINE,
          ef_error_any_0 TYPE c,
          ef_error_in_item_deletion_0 TYPE c,
          ef_error_in_pod_update_0 TYPE c,
          ef_error_in_interface_0 TYPE c,
          ef_error_in_goods_issue_0 TYPE c,
          ef_error_in_final_check_0 TYPE c,
          d_return   LIKE bapireturn1.
    Internal tables for BAPI Function Module
    data : i_cret like BAPIRETURN1 occurs 0 with header line,
           i_csucess like BAPIVBRKSUCcESS occurs 0 with header line,
           i_ret2 like bapiret2 ,
           flag type c,
           i_mesg like mesg occurs 0 with header line.
    Data Declaration for Invoice Creation
    DATA: VBSK_I     LIKE  VBSK.
    data: d_success  type  c.
    DATA: XKOMFK LIKE      KOMFK   OCCURS 0 WITH HEADER LINE,
          XKOMV  LIKE      KOMV    OCCURS 0 WITH HEADER LINE,
          XTHEAD LIKE      THEADVB OCCURS 0 WITH HEADER LINE,
          XVBFS  LIKE      VBFS    OCCURS 0 WITH HEADER LINE,
          XVBPA  LIKE      VBPAVB  OCCURS 0 WITH HEADER LINE,
          XVBRK  LIKE      VBRKVB  OCCURS 0 WITH HEADER LINE,
          XVBRP  LIKE      VBRPVB  OCCURS 0 WITH HEADER LINE,
          XVBSS  LIKE      VBSS    OCCURS 0 WITH HEADER LINE,
          XKOMFKGN LIKE    KOMFKGN OCCURS 0 WITH HEADER LINE.
    S E L E C T I O N  -  S C R E E N   ******************
    Selection-screen
    Selection-screen : begin of block blk with frame title text-001.
    parameters : p_vbeln like vbak-vbeln obligatory.
    selection-screen : end of block blk.
    A T -  S E L E C T I O N  - S C R E E N ***************
    Validation on Sales order
    at selection-screen on p_vbeln.
    Check the data on VBAK Table
      select single vbeln from vbak into vbak-vbeln
                                where vbeln = p_vbeln.
      if sy-subrc ne 0.
        message e006 with p_vbeln.
      endif.
    S T A R T  - O F - S E L E C T I O N *******************
    Start-of-selection.
      break sreddy.
    Get the Invoice Number corresponding Sales Order Number
      perform get_invoice.
    Step 1.
    Cancel the Invoice  - Transaction VF11
      perform cancel_invoice.
    Reverse the goods issue
      perform reverse_goodsissue.
    Get the Order and Delivery Items
      perform get_sales_deliv.
    Delivery Change
      perform Delivery_change.
    Create Invoice document
      perform invoice_create.
    E N D  -  O F -  S E L E C T I O N  *******************
    end-of-selection.
    if flag = 'X'.
    message i012 with p_vbeln.
    endif.
    *&      Form  get_invoice
          Get Invoice Number
    FORM get_invoice.
    Clear Variables
      clear : v_deliv,
              v_invoic,
              flag.
    Get the Delivery Number First
      select single vbeln from vbfa into v_deliv
                               where vbelv = p_vbeln
                               and   vbtyp_n = 'J'.
      if sy-subrc ne 0.
        message i004 with p_vbeln.
        stop.
      endif.
    Get the Invoice Number
      select single vbeln from vbfa into v_invoic
                               where vbelv = p_vbeln
                               and   vbtyp_n = 'M'.
      if sy-subrc ne 0.
        message i003 with p_vbeln.
        stop.
      endif.
    ENDFORM.                    " get_invoice
    *&      Form  cancel_invoice
          Cancel the Invoice
    FORM cancel_invoice.
      clear : i_ret2,
              i_cret,
              i_csucess.
      refresh : i_cret,
                i_csucess.
      CALL FUNCTION 'BAPI_BILLINGDOC_CANCEL1'
        EXPORTING
          BILLINGDOCUMENT       = v_invoic
      TESTRUN               =
      NO_COMMIT             =
      BILLINGDATE           =
        TABLES
          RETURN                = i_cret
          SUCCESS               = i_csucess
      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
           EXPORTING
                WAIT   = space
           IMPORTING
                RETURN = i_ret2.
    read table i_cret with key type = 'E'.
      if sy-subrc ne 0.
        message i005 with v_invoic.
        stop.
      endif.
    ENDFORM.                    " cancel_invoice
    *&      Form  reverse_goodsissue
          Reverse the goods Issue
    FORM reverse_goodsissue.
    Local Variable
      data : lv_vbtyp like likp-vbtyp.
      clear : i_mesg,
              lv_vbtyp.
      refresh : i_mesg.
      select single vbtyp from likp into lv_vbtyp
                               where vbeln = v_deliv.
      CALL FUNCTION 'WS_REVERSE_GOODS_ISSUE'
        EXPORTING
          I_VBELN                         = v_deliv
          I_BUDAT                         = sy-datum
        I_COUNT                         =
        I_MBLNR                         =
        I_TCODE                         =
          I_VBTYP                         = lv_vbtyp
        TABLES
          T_MESG                          = i_mesg
       EXCEPTIONS
         ERROR_REVERSE_GOODS_ISSUE       = 1
         OTHERS                          = 2
      if sy-subrc ne 0.
        message i007 with v_deliv.
      endif.
    ENDFORM.                    " reverse_goodsissue
    *&      Form  get_sales_deliv
          Get the Sales order and Deliv Items
    FORM get_sales_deliv.
    Local Variables
      data : lv_kwmeng like vbap-kwmeng.
      clear : i_lips,
              i_vbap.
      refresh : i_lips,
                i_vbap.
    Select the data from LIPS
      select * from lips into table i_lips
                         where vbeln = v_deliv.
      if sy-subrc ne 0.
        message i008 with v_deliv.
        stop.
      endif.
      sort i_lips by vbeln posnr.
      Get the Sales order Item Data.
      select * from vbap into table i_vbap
                              where vbeln = p_vbeln.
      if sy-subrc ne 0.
        message i006 with p_vbeln.
        stop.
      endif.
      sort i_vbap by vbeln posnr.
    Compare delivery Item and Order Items
      loop at i_lips.
        clear lv_kwmeng.
        read table i_vbap with key posnr = i_lips-posnr.
        if sy-subrc eq 0.
          lv_kwmeng = i_vbap-kwmeng * 2.
          if lv_kwmeng >= i_lips-lfimg.
            i_lips-lfimg = i_vbap-kwmeng.
            modify i_lips.
          endif.
        endif.
      endloop.
    ENDFORM.                    " get_sales_deliv
    *&      Form  Delivery_change
          Delivery Update
    FORM Delivery_change.
      Clear : i_prot.
      refresh : i_prot.
    Delivery Update
      CALL FUNCTION 'LE_MOB_DELIVERY_UPDATE'
           EXPORTING
                do_commit                = 'X'
           TABLES
                t_delivery_items         = i_lips
                prot                     = i_prot
           EXCEPTIONS
                conversion_overflow      = 1
                essential_data_missing   = 2
                error                    = 3
                nothing_to_update        = 4
                lock_after_update_failed = 5
                error_in_delivery_update = 6
                OTHERS                   = 7.
      COMMIT WORK.
      IF sy-subrc <> 0.
        MESSAGE i009 with v_deliv.
      endif.
    Post Goods Issue
      CLEAR:    d_return,
                i_prot,
                l_vbeln,
                l_vbkok.
      REFRESH i_prot.
      CLEAR:  ef_error_in_item_deletion_0    ,
              ef_error_in_pod_update_0       ,
              ef_error_in_interface_0        ,
              ef_error_in_goods_issue_0      ,
              ef_error_in_final_check_0      .
    carry out goods issue
      l_vbeln          = v_deliv.
      l_vbkok-vbeln_vl = l_vbeln.
      l_vbkok-wabuc    = 'X'.
    carry out goods issue
      l_vbeln          = v_deliv.
      l_vbkok-vbeln_vl = l_vbeln.
      l_vbkok-wabuc    = 'X'.
    SET UPDATE TASK LOCAL.
      CALL FUNCTION 'WS_DELIVERY_UPDATE'
           EXPORTING
                vbkok_wa                    = l_vbkok
                synchron                    = 'X'
                no_messages_update          = ' '
                update_picking              = 'X'
                commit                      = 'X'
                delivery                    = l_vbeln
                nicht_sperren               = 'X'
                if_error_messages_send_0    = space
           IMPORTING
                ef_error_any_0              = ef_error_any_0
                ef_error_in_item_deletion_0 = ef_error_in_item_deletion_0
                ef_error_in_pod_update_0    = ef_error_in_pod_update_0
                ef_error_in_interface_0     = ef_error_in_interface_0
                ef_error_in_goods_issue_0   = ef_error_in_goods_issue_0
                ef_error_in_final_check_0   = ef_error_in_final_check_0
           TABLES
                prot                        = i_prot
           EXCEPTIONS
                error_message               = 1
                OTHERS                      = 2.
      if sy-subrc ne 0.
        message i010 with v_deliv.
      else.
        COMMIT WORK .
      endif.
    ENDFORM.                    " Delivery_change
    *&      Form  invoice_create
          Invoice Creation
    FORM invoice_create.
      refresh: XKOMFK, XKOMV,
               XTHEAD, XVBFS,
               XVBPA,  XVBRK,
               XVBRP,  XVBSS.
      clear  : XKOMFK, XKOMV,
               XTHEAD, XVBFS,
               XVBPA,  XVBRK,
               XVBRP,  XVBSS,
               VBSK_I.
      VBSK_I-SMART = 'F'.
      XKOMFK-VBELN =  v_deliv.
      XKOMFK-VBTYP = 'J'.
      APPEND XKOMFK.
      CALL FUNCTION 'RV_INVOICE_CREATE'
           EXPORTING
                VBSK_I       = VBSK_I
                WITH_POSTING = 'C'
           TABLES
                XKOMFK       = XKOMFK
                XKOMV        = XKOMV
                XTHEAD       = XTHEAD
                XVBFS        = XVBFS
                XVBPA        = XVBPA
                XVBRK        = XVBRK
                XVBRP        = XVBRP
                XVBSS        = XVBSS.
      if sy-subrc eq 0.
        COMMIT WORK.
       flag = 'X'.
      else.
      message i011 with p_vbeln.
      endif.
    ENDFORM.                    " invoice_create
    Reward Points if it is helpful
    Thanks
    Seshu

  • Sharepoint designer 2013 workflow kickoff issue from code

    Problem Statement: Start a  SharePoint 2013 designer Reusable Workflow with STS Authenticated User. We are trying to start to SharePoint 2013 designer Reusable Workflow with
    STS authenticated user using code but when we do that, we get following error. RequestorId: a3ce6dc6-31ec-23f3-0000-000000000000. Details: RequestorId: a3ce6dc6-31ec-23f3-0000-000000000000. Details: An unhandled exception occurred during the
    execution of the workflow instance. Exception details: System.ApplicationException: HTTP 401 {"error_description":"The server was unable to process the request due to an internal error. For more information about the error, either turn on IncludeExceptionDetailInFaults
    (either from ServiceBehaviorAttribute or from the <serviceDebug> configuration behavior) on the server in order to send the exception information back to the client, or turn on tracing as per the Microsoft .NET Framework SDK documentation and inspect
    the server trace logs."} {"x-ms-diagnostics":["3001000;reason=\"There has been an error authenticating the request.\";category=\"invalid_client\""],"SPRequestGuid":["a3ce6dc6-31ec-23f3-b3ab-aef56fc7e299"],"request-id":["a3ce6dc6-31ec-23f3-b3ab-aef56fc7e299"],"X-FRAME-OPTIONS":["SAMEORIGIN"],"SPRequestDuration":["65"],"SPIisLatency":["0"],"Server":["Microsoft-IIS\/8.0"],"WWW-Authenticate":["Bearer
    realm=\"de9da885-f7bf-4564-a3a5-
    Alternate approach we are following : We have created a windows authenticated user and gave him all the necessary permission to trigger the workflow(contribute, full control). Then we are creating the User token
    for that user and opening the site with the help of the generated user token. By this approach workflow is getting triggered.
    The problem in this approach is after ¾ days it gives error when trying to kick off workflow from code with user who has not logged in as we are using this AD user only for kickoff purpose.
    InvalidOperationException:
    Operation is not valid due to the current state of the object
    MCTS Sharepoint 2010, MCAD dotnet, MCPDEA, SharePoint Lead

    There is a userprofile for the user and the issue is not a userprofile. We are using direct AD import and we have full sync every 5 minutes. The workflow gets kicked off using a fix user who never logs in but after 4/5 days the token or something gets expired
    and then we have to manually login with that user and then only code can kickoff workflow with that particular user.
    The problem in this approach is after ¾ days it gives error when trying to kick off workflow from code with user who has not logged in as we are using this AD user only for kickoff purpose.
    InvalidOperationException:
    Operation is not valid due to the current state of the object
    We can not kickoff with current user as current user can not be given contribute rights and we can not do it with system account as its not able to kickoff using system account by design of sp2013 workflow.
    So we need to know how to kcikoff workflow with a user who never logs in or logs in only for the first time and then never in production.
    Below code works for few days and then as user does not login with which we kick off workflow the token or something gets expired after 4/5 days.
    userToken = oSPWeb.EnsureUser(“UserAccountName”).UserToken;
    using (SPSite
    oSPSite = new
    SPSite(SPContext.Current.Web.Url,
    userToken))  //Site collection URL
    using (SPWeb
    oSPWeb = oSPSite.OpenWeb())  //Subsite URL
    SPList list = oSPWeb.Lists["Proposal"];
    try
                                oSPWeb.AllowUnsafeUpdates =
    true;
    SPListItem item = list.GetItemById(proposalID);
    var workflowServiceManager =
    new
    WorkflowServicesManager(oSPWeb);
    var workflowSubscriptionService = workflowServiceManager.GetWorkflowSubscriptionService();
                                //get
    all workflows associated with the list
    var subscriptions = workflowSubscriptionService.EnumerateSubscriptionsByList(list.ID);
    foreach (var
    workflowSubscription in subscriptions)
    if (workflowSubscription.Name ==
    "Proposal Workflow")
    //initiation parameters
    var inputParameters =
    new
    Dictionary<string,
    object>();
    inputParameters.Add("Comments",
    "TEST");
    inputParameters.Add("ItemId", item.ID);
    inputParameters.Add("WorkflowStart",
    "StartWorkflow");
    workflowServiceManager.GetWorkflowInstanceService().StartWorkflowOnListItem(workflowSubscription, item.ID, inputParameters);
    break;
                                oSPWeb.AllowUnsafeUpdates =
    false;
    catch (Exception
    ex)
                                Classes.Logger.WriteErrorLog("Sumbit",
    "kickoffWorkflow1", ex,
    MCTS Sharepoint 2010, MCAD dotnet, MCPDEA, SharePoint Lead

  • Since upgrading to Yosemite on my iMac, My Mail app refuses to open, Safari won't load, and I can't upload pictures from my iPad... Please help, any ideas very welcome. I've had my iMac since 2011, and have never had any issues to deal with before..

    Since upgrading to Yosemite on my iMac: My Mail app refuses to open, Safari won't load, and I can't upload pictures from my iPad...
    Please help, any ideas very welcome. I've had my iMac since 2011, and have never had any issues to deal with before..
    Thanks

    29/11/2014 20:17:01.315 com.apple.xpc.launchd[1]: (jp.buffalo.NASPower)
    Service only ran for 11 seconds. Pushing respawn out by 49 seconds.
    29/11/2014 20:17:37.013 com.apple.backupd[616]: Finished scan
    29/11/2014 20:17:43.108 com.apple.backupd[616]: Saved event cache at
    /Volumes/Time Machine Backups/Backups.backupdb/Geoff Lambrechts’s iMac
    (2)/2014-11-29-200648.inProgress/9B453663-603F-40B8-AC21-24F05C724E15/.6162AD34- 38F8-30AB-98E0-4A22FB9D311F.eventdb
    29/11/2014 20:17:43.207 com.apple.backupd[616]: Not using file event
    preflight for Macintosh HD
    29/11/2014 20:18:01.561 com.apple.xpc.launchd[1]: (jp.buffalo.NASPower)
    Service only ran for 11 seconds. Pushing respawn out by 49 seconds.
    29/11/2014 20:18:16.288 com.apple.xpc.launchd[1]:
    (com.apple.quicklook[715]) Endpoint has been activated through legacy
    launch(3) APIs. Please switch to XPC or bootstrap_check_in():
    com.apple.quicklook
    29/11/2014 20:18:23.705 com.apple.SecurityServer[56]: Session 100013 created
    29/11/2014 20:18:32.046 mdworker[718]: code validation failed in the
    process of getting signing information: Error Domain=NSOSStatusErrorDomain
    Code=-67062 "The operation couldn’t be completed. (OSStatus error -67062.)"
    29/11/2014 20:19:01.662 com.apple.xpc.launchd[1]: (jp.buffalo.NASPower)
    Service only ran for 11 seconds. Pushing respawn out by 49 seconds.
    29/11/2014 20:19:45.458 com.apple.xpc.launchd[1]:
    (com.apple.imfoundation.IMRemoteURLConnectionAgent) The
    _DirtyJetsamMemoryLimit key is not available on this platform.
    29/11/2014 20:19:59.123 com.apple.xpc.launchd[1]:
    (com.apple.PubSub.Agent[725]) Endpoint has been activated through legacy
    launch(3) APIs. Please switch to XPC or bootstrap_check_in():
    com.apple.pubsub.ipc
    29/11/2014 20:19:59.123 com.apple.xpc.launchd[1]:
    (com.apple.PubSub.Agent[725]) Endpoint has been activated through legacy
    launch(3) APIs. Please switch to XPC or bootstrap_check_in():
    com.apple.pubsub.notification
    29/11/2014 20:20:01.138 com.apple.xpc.launchd[1]: (jp.buffalo.NASPower)
    Service only ran for 10 seconds. Pushing respawn out by 50 seconds.
    29/11/2014 20:21:01.484 com.apple.xpc.launchd[1]: (jp.buffalo.NASPower)
    Service only ran for 10 seconds. Pushing respawn out by 50 seconds.
    29/11/2014 20:21:13.430 com.apple.backupd[616]: Found 4529 files (1.1 GB)
    needing backup
    29/11/2014 20:21:18.786 com.apple.backupd[616]: 2.82 GB required (including
    padding), 1.24 TB available
    29/11/2014 20:21:31.775 Console[734]: Failed to connect (_consoleX) outlet
    from (NSApplication) to (ConsoleX): missing setter or instance variable
    29/11/2014 20:21:34.230 WindowServer[162]: disable_update_timeout: UI
    updates were forcibly disabled by application "Console" for over 1.00
    seconds. Server has re-enabled them.
    29/11/2014 20:21:36.898 WindowServer[162]: common_reenable_update: UI
    updates were finally reenabled by application "Console" after 3.67 seconds
    (server forcibly re-enabled them after 1.00 seconds)
    29/11/2014 20:21:36.971 coreservicesd[83]: SFLEntryBase::ListHasChanged
    mach_msg returned 10000004d
    29/11/2014 20:22:01.817 com.apple.xpc.launchd[1]: (jp.buffalo.NASPower)
    Service only ran for 10 seconds. Pushing respawn out by 50 seconds.
    29/11/2014 20:23:02.170 com.apple.xpc.launchd[1]: (jp.buffalo.NASPower)
    Service only ran for 10 seconds. Pushing respawn out by 50 seconds.
    29/11/2014 20:24:02.547 com.apple.xpc.launchd[1]: (jp.buffalo.NASPower)
    Service only ran for 10 seconds. Pushing respawn out by 50 seconds.
    29/11/2014 20:25:02.168 CalendarAgent[218]:
    [Refusing to parse response
    to PROPPATCH because of content-type: .]
    29/11/2014 20:25:02.233 CalendarAgent[218]:
    [Refusing to parse response
    to PROPPATCH because of content-type: .]
    29/11/2014 20:25:02.236 CalendarAgent[218]:
    [Refusing to parse response
    to PROPPATCH because of content-type: .]
    29/11/2014 20:25:02.284 CalendarAgent[218]:
    [Refusing to parse response
    to PROPPATCH because of content-type: .]
    29/11/2014 20:25:03.059 com.apple.xpc.launchd[1]: (jp.buffalo.NASPower)
    Service only ran for 10 seconds. Pushing respawn out by 50 seconds.
    29/11/2014 20:25:12.674 com.apple.xpc.launchd[1]:
    (com.apple.imfoundation.IMRemoteURLConnectionAgent) The
    _DirtyJetsamMemoryLimit key is not available on this platform.
    29/11/2014 20:26:03.464 com.apple.xpc.launchd[1]: (jp.buffalo.NASPower)
    Service only ran for 10 seconds. Pushing respawn out by 50 seconds.
    29/11/2014 20:27:03.841 com.apple.xpc.launchd[1]: (jp.buffalo.NASPower)
    Service only ran for 10 seconds. Pushing respawn out by 50 seconds.
    On 29 November 2014 at 19:29, Apple Support Communities Updates <

  • Validation Errors with new Install of W7 x64 Ent Debug Checker On New Equipment

    I am receiving multiple Errors. I am trying to use the Windows 7 x64 Enterprise which happens to be the Debug Checker version OS as the host machine.  I have only built the machine, and tried to load the Drivers.
    I say this due to the starting issue that upon the loading of the entire driver set, (for the MB, Seagate Harddrive, and Vid Card), I would get the BSOD.  I identified that the Bluetooth driver was the issue.  I then did not load the Bluetooth
    drivers for the MB on the 5<sup>th</sup> or so install of the 7 Ent os.  (Tried Server 2k8 r2. Which is not compatible with the MB Drivers.)
    I have not received a single Update either.  The Auto update feature claims that I am up to date.  I do not believe this due to the fact that any fresh Install of any OS has about several decades of updates and reboots to go through.
    Upon trying the suggestions on the forum about turning off the IE Addons, the errors remain.  Also the results of the sfc /scannow are copied below.
    My Questions
    I am seeking assistance on solving the Errors that have refused to leave me alone , to put it humorously and am asking for your insight and wisdom.  Will you take a look??
    Do I need to go to Win 7 Ent or Ult x64 that is not a Debug Checker version.
    Are there other Microsoft download Registery file checkers besides the MGA Diag tool that are freeware that I can use to check, for corrupted registry files.
    Or do I just need to take it to the stores (Fry’s and Microcenter) that recommended the equipment and have them just reload the software and allow them the headache of solving the error issue, by paying them to install the drivers and have ALL of the
    drivers work. (including the blue tooth)
    The Goal is to turn it into a Active Directory Server using Virtual Box with Server 2k8 R2 running in the virtual box environment.
    Errors and Results.
    There are also a number of logs that show various Crit, Error, and Warning logs.  I will include those if need be.
    This is the majority of the error messages, and I have missed the opportunity to capture others.
    Internet explorer encountered Validation errors:
    Validation Error
    i.     
    Process Name: iexplorer.exe
    ii.     
    Module Name : mshtml.dll
    iii.     
    Assert offset: 0000000000B221DB
    Validation Error
    i.     
    Process Name: iexplorer.exe
    ii.     
    Module Name : comctl32.dl
    iii.     
    Assert offset: 00133A2A
    Validation Error
    i.     
    Process Name: iexplorer.exe
    ii.     
    Module Name : mshtml.dll
    iii.     
    Assert offset: 008BE823
    Validation Error
    i.     
    Process Name: iexplorer.exe
    ii.     
    Module Name : mshtml.dll
    iii.     
    Assert offset: 0040F9E8
    Validation Error
    i.     
    Process Name: iexplorer.exe
    ii.     
    Module Name : iertutil.dll
    iii.     
    Assert offset: 001DEC51
    Validation Error
    i.     
    Process Name: iexplorer.exe
    ii.     
    Module Name : KERNELBASE.dll
    iii.     
    Assert offset: 00014159
    Validation Error
    i.     
    Process Name: iexplorer.exe
    ii.     
    Module Name : mshtml.dll
    iii.     
    Assert offset: 0000000000B221DB
    Microsoft Management Console Encountered a Validation Error
    Validation Error
    i.     
    Process Name: mmc.exe
    ii.     
    Module Name : ieframe.dll
    iii.     
    Assert offset: 00000000006C9283
    Scripted Diagnostics Native Hot encountered a Validation Error
    Validation Error
    i.     
    Process Name: sdiagnhost.exe
    ii.     
    Module Name : urlmon.dll
    iii.     
    Assert offset: 00000000001A0A73
    Validation Error
    i.     
    Process Name: sdiagnhost.exe
    ii.     
    Module Name : KERNELBASE.dll
    iii.     
    Assert offset: 0000000000017f32
    Windows System Assessment Tool encountered a validation error
    Validation Error
    i.     
    Process Name: winsat.exe
    ii.     
    Module Name : KERNELBASE.dll
    iii.     
    Assert offset: 0000000000017F32
    Windows Explorer Encountered a validation Error
    Validation Error
    i.     
    Process Name: Explored.exe
    ii.     
    Module Name : thumbcache.dll
    iii.     
    Assert offset: 00000000000300BE
    AI Suite 2 encountered a validation error
    Validation Error
    i.     
    Process Name: AI Suite 2.exe
    ii.     
    Module Name : ntdll.dll
    iii.     
    Assert offset: 000686BD
    the number “2” is the substitutedfor the roman numeral 2
    I believe that this is part of the MB Suite.
    My the environment is a new equipment, and Downloaded student software. Windows 7 Enterprise SPK 1 Debug Checker, Valid Key with the software download.  Activated on 8-12-2012
    Motherboard: Asus p9x79 Deluxe, Part number: 90-mibh50-g0aay0kz
    Chip Set: bx80619i73930k
    2x Memory: cmx16gx3m2a1600c11 Corsair
    Video Card: Diamond R7870 2GB DD OC 2xDVI/HDMI/2xDisplayport memory Clock 1250 MHz
    Hard Drive: 9jb1n3-574 (leave the last two didgets off when searching in the browser) This is a Seagate 2TB
    Generic optic drive: SH-222bb/bebe Samsung
    Here is the Microsoft Fix It error code
    Assertion Failed!
    Program:…
    File: d:\w7rtm\ds\security\cryptoapi\pki\...\newstor.cpp
    Line: 2131
    Expression: pStore->dwState = = STORE_STATE_OPEN || pStore->dwState = = STORE_STATE_OPENING || pStore->dwState = = STORE_STATE_DEFER_CLOSING || pStore->dwState = = STORE_STATE_NULL
    For information on how your program can cause an assertion failure, see the Visual C++ documentation on asserts
    (Press Retry to debug the application – JIT must be enabled)
                    Abort    Retry     Ignore
    Abort
    Closes the program
    Retry
    Repeats the error
    Verbatim
    Ignore
    Closes the program
    Nothing happens
    Here is the Microsoft Genuine Advantage Diagnostic Report
    Diagnostic Report (1.9.0027.0):
    Windows Validation Data-->
    Validation Code: 0
    Cached Online Validation Code: N/A, hr = 0xc004f012
    Windows Product Key: *****-*****-*****-*****-8C7YB
    Windows Product Key Hash: cezvXJ2/mUhIEFxJfWkZ3IN8EQQ=
    Windows Product ID: 55041-146-2397786-86942
    Windows Product ID Type: 6
    Windows License Type: Volume MAK
    Windows OS version: 6.1.7601.2.00010100.1.0.004
    ID: {EBD85729-DBBB-479F-AB15-EBC0DDE0CC28}(1)
    Is Admin: Yes
    TestCab: 0x0
    LegitcheckControl ActiveX: N/A, hr = 0x80070002
    Signed By: N/A, hr = 0x80070002
    Product Name: Windows 7 Enterprise
    Architecture: 0x00000009
    Build lab: 7601.win7sp1_rtm.101119-1850
    TTS Error:
    Validation Diagnostic:
    Resolution Status: N/A
    Vista WgaER Data-->
    ThreatID(s): N/A, hr = 0x80070002
    Version: N/A, hr = 0x80070002
    Windows XP Notifications Data-->
    Cached Result: N/A, hr = 0x80070002
    File Exists: No
    Version: N/A, hr = 0x80070002
    WgaTray.exe Signed By: N/A, hr = 0x80070002
    WgaLogon.dll Signed By: N/A, hr = 0x80070002
    OGA Notifications Data-->
    Cached Result: N/A, hr = 0x80070002
    Version: N/A, hr = 0x80070002
    OGAExec.exe Signed By: N/A, hr = 0x80070002
    OGAAddin.dll Signed By: N/A, hr = 0x80070002
    OGA Data-->
    Office Status: 109 N/A
    OGA Version: N/A, 0x80070002
    Signed By: N/A, hr = 0x80070002
    Office Diagnostics: 025D1FF3-364-80041010_025D1FF3-229-80041010_025D1FF3-230-1_025D1FF3-517-80040154_025D1FF3-237-80040154_025D1FF3-238-2_025D1FF3-244-80070002_025D1FF3-258-3
    Browser Data-->
    Proxy settings: N/A
    User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Win32)
    Default Browser: c:\Program Files (x86)\Internet Explorer\iexplore.exe
    Download signed ActiveX controls: Prompt
    Download unsigned ActiveX controls: Disabled
    Run ActiveX controls and plug-ins: Allowed
    Initialize and script ActiveX controls not marked as safe: Disabled
    Allow scripting of Internet Explorer Webbrowser control: Disabled
    Active scripting: Allowed
    Script ActiveX controls marked as safe for scripting: Allowed
    File Scan Data-->
    File Mismatch: C:\Windows\system32\wat\watadminsvc.exe[Hr = 0x80070003]
    File Mismatch: C:\Windows\system32\wat\npwatweb.dll[Hr = 0x80070003]
    File Mismatch: C:\Windows\system32\wat\watux.exe[Hr = 0x80070003]
    File Mismatch: C:\Windows\system32\wat\watweb.dll[Hr = 0x80070003]
    Other data-->
    Office Details: <GenuineResults><MachineData><UGUID>{EBD85729-DBBB-479F-AB15-EBC0DDE0CC28}</UGUID><Version>1.9.0027.0</Version><OS>6.1.7601.2.00010100.1.0.004</OS><Architecture>x64</Architecture><PKey>*****-*****-*****-*****-BBBBB</PKey><PID>55041-146-2397786-86942</PID><PIDType>6</PIDType><SID>S-1-5-21-4234423899-2489109333-1931045272</SID><SYSTEM><Manufacturer>System
    manufacturer</Manufacturer><Model>System Product Name</Model></SYSTEM><BIOS><Manufacturer>American Megatrends Inc.</Manufacturer><Version>1103</Version><SMBIOSVersion major="2" minor="7"/><Date>20120409000000.000000+000</Date></BIOS><HWID>CFBA3607018400F2</HWID><UserLCID>0409</UserLCID><SystemLCID>0409</SystemLCID><TimeZone>Pacific
    Standard Time(GMT-08:00)</TimeZone><iJoin>0</iJoin><SBID><stat>3</stat><msppid></msppid><name></name><model></model></SBID><OEM/><GANotification/></MachineData><Software><Office><Result>109</Result><Products/><Applications/></Office></Software></GenuineResults> 
    Spsys.log Content: 0x80070002
    Licensing Data-->
    Software licensing service version: 6.1.7601.17514
    Name: Windows(R) 7, Enterprise edition
    Description: Windows Operating System - Windows(R) 7, VOLUME_MAK channel
    Activation ID: 9abf5984-9c16-46f2-ad1e-7fe15931a8dd
    Application ID: 55c92734-d682-4d71-983e-d6ec3f16059f
    Extended PID: 55041-00172-146-239778-03-1033-7601.0000-2252012
    Installation ID: 000792957432055771547065313840421702569731971164600080
    Processor Certificate URL: http://go.microsoft.com/fwlink/?LinkID=88338
    Machine Certificate URL: http://go.microsoft.com/fwlink/?LinkID=88339
    Use License URL: http://go.microsoft.com/fwlink/?LinkID=88341
    Product Key Certificate URL: http://go.microsoft.com/fwlink/?LinkID=88340
    Partial Product Key: 8C7YB
    License Status: Licensed
    Remaining Windows rearm count: 5
    Trusted time: 8/12/2012 5:47:25 PM
    Windows Activation Technologies-->
    HrOffline: 0x00000000
    HrOnline: N/A
    HealthStatus: 0x0000000000000000
    Event Time Stamp: N/A
    ActiveX: Not Registered - 0x80040154
    Admin Service: Not Registered - 0x80040154
    HealthStatus Bitmask Output:
    HWID Data-->
    HWID Hash Current: OAAAAAEAAgABAAEAAgACAAAABAABAAEAHKJu3XDSdMRkx4ieoGkwung0ipvkrmTRDIsORc6qNCE=
    OEM Activation 1.0 Data-->
    N/A
    OEM Activation 2.0 Data-->
    BIOS valid for OA 2.0: yes, but no SLIC table
    Windows marker version: N/A
    OEMID and OEMTableID Consistent: N/A
    BIOS Information:
      ACPI Table Name           OEMID Value     OEMTableID Value
      APIC                                    ALASKA                               
    A M I
      FACP                                   ALASKA                               
    A M I
      HPET                                    ALASKA                               
    A M I
      MCFG                                 ALASKA                               
    OEMMCFG.
      SSDT                                    AMICPU                              
    PROC
    Scan Now Results
    Microsoft Windows [Version 6.1.7601]
    Copyright (c) 2009 Microsoft Corporation.  All rights reserved.
    C:\Windows\system32>sfc /scannow
    Beginning system scan.  This process will take some time.
    Beginning verification phase of system scan.
    Verification 100% complete.
    Windows Resource Protection did not find any integrity violations.
    C:\Windows\system32>

    Thank you for your valuable time.
    I have performed the Chkdsk and the memory Diagnostic tool as per the suggestions.
    The Memory Tool did not find anything amiss.
    As per another thread I am going to try flashing the bios as well with the updates.
    Following are the Chkdsk results.
    Are there any other suggestions?
    Chkdsk Results
    Checking file system on C:
    The type of the file system is NTFS.
    A disk check has been scheduled.
    Windows will now check the disk.                        
    CHKDSK is verifying files (stage 1 of 5)...
      89600 file records processed.                               
              File verification completed.
      221 large file records processed.                                     
    0 bad file records processed.                                       
    1596 EA records processed.                                             
    44 reparse records processed.                                      
    CHKDSK is verifying indexes (stage 2 of 5)...
      131874 index entries processed.                                        
    Index verification completed.
      0 unindexed files scanned.                                           0
    unindexed files recovered.                                       CHKDSK
    is verifying security descriptors (stage 3 of 5)...
      89600 file SDs/SIDs processed.                                        
    Cleaning up 36 unused index entries from index $SII of file 0x9.
    Cleaning up 36 unused index entries from index $SDH of file 0x9.
    Cleaning up 36 unused security descriptors.
    Security descriptor verification completed.
      21138 data files processed.                                           
    CHKDSK is verifying Usn Journal...
      36120296 USN bytes processed.                                            
    Usn Journal verification completed.
    CHKDSK is verifying file data (stage 4 of 5)...
      89584 files processed.                                                
    File data verification completed.
    CHKDSK is verifying free space (stage 5 of 5)...
      476262075 free clusters processed.                                        
    Free space verification is complete.
    Windows has checked the file system and found no problems.
    1953410047 KB total disk space.
      48065140 KB in 61610 files.
         43468 KB in 21139 indexes.
             0 KB in bad sectors.
        253139 KB in use by the system.
         65536 KB occupied by the log file.
    1905048300 KB available on disk.
          4096 bytes in each allocation unit.
     488352511 total allocation units on disk.
     476262075 allocation units available on disk.
    Internal Info:
    00 5e 01 00 ef 42 01 00 ef 95 02 00 00 00 00 00  .^...B..........
    e3 00 00 00 2c 00 00 00 00 00 00 00 00 00 00 00  ....,...........
    6d 00 75 00 69 00 00 00 00 00 00 00 00 00 00 00  m.u.i...........
    Windows has finished checking your disk.
    Please wait while your computer restarts.

  • Issues in Table with Multi-Row Insert

    I have created a master detail screens using jheadstart on 2 separate pages, Master in the Form layout and detail in the Table Layout with multi-row insert, update and delete flags ON. Have set the New Rows count = 2.
    Issue 1
    If I try to delete any existing rows, it gives error for new rows saying value is required for the mandatory fields. It should just ignore the new rows if I have not updated any values for any attributes in the those row(As it does for non Master-Detail Table layout). I guess this might be happening because the jheadstart code is setting the foreign key for new rows the detail, but not resetting the status of the rows back to INITIALIZED.
    I also noticed that the create() of underlying EO is getting called for those blank rows when I click on 'Save' button, even if I have not changed any data in those rows.
    Issue 2
    When I try to select the new rows also for deletion, I am getting a '500 Internal Server Error' with following stack trace... This is also happening for normal (non Master-Detail) Table layout.
    java.lang.IllegalStateException: AdfFacesContext was already released or had never been attached.     at oracle.adf.view.faces.context.AdfFacesContext.release(AdfFacesContext.java:342)     at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl.doFilter(AdfFacesFilterImpl.java:253)     at oracle.adf.view.faces.webapp.AdfFacesFilter.doFilter(AdfFacesFilter.java:87)
    Issue 3
    I have put some validation code in the validate() method in the MyEntityImpl.java class.
    The validate method seems tobe getting called lots of times, in my case 20 times, where the new rows are just 2.
    Environment:
    Jdeveloper 10.1.3, JHeadStart 10.1.3 build 78, Windows XP
    thanks

    Thanks for the reply.
    Issue 1:
    What I have observed that in case of multi-row select enabled tables, the blank rows do not have any data. This is because the EO's create() method is called only when we post the data using 'Save' button. Thus the Foreign Keys are also not setup. This is a correct behavior since create() and FK setups etc should get done only if the user has inputted any value in the new rows and thus intend to insert new data into the table.
    I am able to find the exact cause of this issue. It is happening because in the details table, I have a column which needs tobe shown as checkbox. Since we can only bind checkbox to an Boolean attribute in VO, I have created a transient attribute of type Boolean, which basically calls the getter/setter of actual attribute doing the String "Y"/"N" to true/false conversion. Here is code for the transient attribute getter/setter
    public Boolean getDisplayOnWebBoolean() {
    return "Y".equals(getDisplayOnWeb()) ? Boolean.TRUE : Boolean.FALSE;
    public void setDisplayOnWebBoolean(Boolean value) {
    if(Boolean.TRUE.equals(value))
    setDisplayOnWeb("Y");
    else
    setDisplayOnWeb("N");
    Now when I click on the "Save" button, the setter for the boolean field is getting called with the value = false and this is resulting into the row being maked as dirty and thus the validation for the required attributes is getting executed and failing.
    Issue 2:
    Confirmed that correct filter-mapping entries are present in the web.xml.
    Now when I select the new blank rows for deletion and click save, following exception is thrown:
    java.lang.ClassCastException: oracle.jheadstart.controller.jsf.bean.NewTableRowBean at oracle.jheadstart.controller.jsf.bean.JhsCollectionModel.getRowsToRemove(JhsCollectionModel.java:412) at oracle.jheadstart.controller.jsf.bean.JhsCollectionModel.doModelUpdate(JhsCollectionModel.java:604) at oracle.jheadstart.controller.jsf.lifecycle.JhsPageLifecycle.processModelUpdaters(JhsPageLifecycle.java:541) at oracle.jheadstart.controller.jsf.lifecycle.JhsPageLifecycle.validateModelUpdates(JhsPageLifecycle.java:571)
    thanks - rutwik

  • Report code with ALV

    Hi
    Can any body provide me the code for report with selection screen using ALV.
    Thanks in advance
    Prasanna Kumar

    Hi Prasanna,
    Below is an example of ALV reporting.
    *& Report  ZVVF_MR028_STOCKLEDGER                                      *
    REPORT  ZVVF_MR028_STOCKLEDGER                  .
    *       Tables
    TABLES:      EKKO,    "PURCHASING DOC. HEADER
                 EKPO,    "PURCHASING DOC. ITEM
                 MAKT,    "MATERIAL DISCRIPTION
                 LFA1,    "VENDOR MASTER
                 RSEG,    "DOC. ITEM - INCOMING INVOICE
                 KONV,    "CONDITION (TRANSECTION DATA - CLUSTER TABLE)
                 EKPA,    "Partner Roles in Purchasing
                 MSEG,
                 t247,
                 mardh,
                 mara.
    *       Types                    Begin with TY_
    TYPE-POOLS slis.
    TYPES  :  BEGIN OF ty_head,
                  p_date TYPE dats,
                  matnr LIKE mseg-matnr,
                  maktx LIKE makt-maktx,
                  openbal LIKE mardh-labst,
                  r_po LIKE mseg-menge,
                  r_prodord LIKE mseg-menge,
                  r_byprod LIKE mseg-menge,
                  r_others LIKE mseg-menge,
                  R_TOTAL TYPE mseg-menge,
                  i_prod LIKE mseg-menge,
                  i_cust LIKE mseg-menge,
                  i_costcen LIKE mseg-menge,
                  i_scrapping LIKE mseg-menge,
                  i_subcontractor LIKE mseg-menge,
                  i_sampling LIKE mseg-menge,
                  purret LIKE mseg-menge,
                  i_total like mseg-menge,
                  stock_out LIKE mseg-menge,
                  stock_in LIKE mseg-menge,
                  stock_transit LIKE mseg-menge,
                  m_to_m_transit  LIKE mseg-menge,
                  phy_loss LIKE mseg-menge,
                  phy_gain LIKE mseg-menge,
                  closing_bal LIKE mseg-menge,
                  current_bal LIKE mseg-menge,
                  bwart like mseg-bwart,
                  werks like mseg-werks,
              END OF ty_head.
    types :  begin of ty_docs,
             matnr like mseg-matnr,  "Material
             budat like mkpf-budat,  "Posting date
             menge like mseg-menge,  "Qty
             xblnr like mkpf-xblnr,  "Ref doc
             end of ty_docs.
    data : w_cnt type I.
    data : w_chk type i.
    TYPES: BEGIN OF TY_KONV,
                 KNUMV LIKE KONV-KNUMV,
                 KBETR LIKE KONV-KBETR,
                 KSCHL LIKE KONV-KSCHL,
                 KWERT LIKE KONV-KAWRT,
           END OF TY_KONV.
    TYPES: BEGIN OF TY_KBETR,
    *              KBETR LIKE KONV-KBETR,
                  KWERT LIKE KONV-KWERT,
              END OF TY_KBETR.
    TYPES: BEGIN OF TY_RSEG,
                  EBELN LIKE RSEG-EBELN,
                  MATNR LIKE RSEG-MATNR,
                  WRBTR LIKE RSEG-WRBTR,
                  KSCHL LIKE RSEG-KSCHL,
                  LIFNR LIKE RSEG-LIFNR,
              END OF TY_RSEG.
    TYPES: BEGIN OF TY_NAME1,
                  NAME1 LIKE LFA1-NAME1,
           END OF TY_NAME1.
    ** Each Condition and their values w.r.t different docu types
    *data: begin of temp_head occurs 0,
    *        kschl  like  konv-kschl,  " Condition type
    *        kwert  like  konv-kwert,  " Condition value
    *      end of temp_head.
    *       Constants                Begin with C_
    CONSTANTS: st_formname_top_of_page TYPE slis_formname
                                  VALUE 'TOP_OF_PAGE-ALV'.
    *       Data                     Begin with W_
    *-------- Declarations for ALV Grid.
    DATA:   it_st_list_top_of_page TYPE slis_t_listheader,
            it_st_fieldcat TYPE slis_t_fieldcat_alv,
            it_st_events   TYPE slis_t_event,
            st_layout   TYPE slis_layout_alv,
            s_status TYPE slis_formname VALUE 'STANDARD_ST01',
            s_user_command TYPE slis_formname VALUE 'USER_COMMAND-ALV',
            s_repid LIKE sy-repid,
            s_save(1) TYPE c,
            s_variant LIKE disvariant,
            code LIKE disvariant-handle.
    data : begin of it_stockclose occurs 0,
           werks like s031-werks,   "Plant
           matnr like mara-matnr,   "Material
           lgort like mard-lgort,   "Storage Loc
           labst like mardh-labst,  "Unrestricted Stock
           insme like mardh-insme,  "Inspection Stock
           speme like mardh-speme,  "Safety stock
           einme like mardh-einme,  "Total stock of rest batches
           retme like mardh-retme,  "Blocked stock returns
           end of it_stockclose.
    data : begin of it_finalstock occurs 0,
           werks like mseg-werks,   "Plant
           matnr like mseg-matnr,   "Material code
           lgort like mard-lgort,   "Sto Loc
           menge like mseg-menge,   "Qty
    *       budat like mkpf-budat,   "Posting Date
           end of it_finalstock.
    data : begin of it_docs occurs 0,
           matnr like mseg-matnr,   "Material code
           budat like mkpf-budat,   "Posting date
           bwart like mseg-bwart,   "Movement type
           menge like mseg-menge,   "Quantity
           werks like mseg-werks,   "Plant
           shkzg like mseg-shkzg,   "Credit/debit
           lgort like mseg-lgort,   "Sto Loc
           maktx like makt-maktx,   "Material Discription
           end of it_docs.
    data : begin of it_mkpf occurs 0,
           budat like mkpf-budat,   "Posting date
           mblnr like mkpf-mblnr,   "Material Doc
           xblnr like mkpf-xblnr,   "Delivery ref no
           mjahr like mkpf-mjahr,   "Fiscal yr
           cpudt like mkpf-cpudt,
           end of it_mkpf.
    data : begin of it_mseg occurs 0,
           matnr like mseg-matnr,   "Material
           bwart like mseg-bwart,   "Movement type
           menge like mseg-menge,   "Qty
           werks like mseg-werks,   "Plant
           mjahr like mseg-mjahr,   "Fiscal yr
           shkzg like mseg-shkzg,   "Credit/Debit Indicator
           lgort like mard-lgort,   "Sto loc
           budat like mkpf-budat,   "Posting date
           xblnr like mkpf-xblnr,   "Delivery ref
           cpudt like mkpf-cpudt,
           end of it_mseg.
    data : begin of it_matnr occurs 0,
           matnr like mara-matnr,   "Material
           end of it_matnr.
    data : w_monat  type monat.    "Month number
    data : w_gjahr like sy-datum,    "Date
           w_date_fiscal(4) type n,  "Year
           w_date like sy-datum,     "Date
           w_buper like t009b-poper, "Posting period
           w_year like t009b-bdatj,  "Posting date
           w_datum(2) type n.        "Date
    *       Internal tables          Begin with IT_
    DATA    :  IT_HEAD TYPE STANDARD TABLE OF TY_HEAD WITH HEADER LINE.
    ***Issues and receipts
    data : it_issue type ty_docs occurs 0 with header line,
           it_receipt type ty_docs occurs 0 with header line,
           it_issue_date type ty_docs occurs 0 with header line,
           it_receipt_date type ty_docs occurs 0 with header line.
    data:   w_dval like mseg-menge,
            w_opbal like mseg-menge.
    **  WORK AREAS: Begin with WA_
    *DATA: wa_HEAD type TY_HEAD.
    *data: w_tkwert    type p decimals 2 value 0,
    *      grmenge     like ekpo-menge,
    *      w_tot_kwert type p decimals 2 value 0,
    *      w_tmp_kwert type p decimals 2 value 0,
    *      w_finalsum  type p decimals 2 value 0,                "#EC *
    *      w_finalrate type p decimals 4 value 0.                "#EC *
    *       R A N G E S
    ranges: r_loekz  for  ekko-loekz.  " Deletion Indicator
    ranges : r_movtype for mseg-bwart,   "Movement type
             r_date for sy-datum.        "Date
    *       Select Options          Begin with SO_
    SELECTION-SCREEN BEGIN OF BLOCK MAIN WITH FRAME TITLE TEXT-001.
    SELECTION-SCREEN SKIP 2.
    *SELECT-OPTIONS : SO_LIFNR FOR EKKO-LIFNR.
    *SELECT-OPTIONS : SO_EKORG FOR EKKO-EKORG .
    *SELECT-OPTIONS : SO_WERKS FOR MSEG-WERKS .
    *SELECT-OPTIONS : SO_EBELN FOR EKKO-EBELN.
    *SELECT-OPTIONS : SO_DATE for sy-datum obligatory no-extension.
    *SELECT-OPTIONS : SO_EKGRP FOR EKKO-EKGRP.
    *SELECT-OPTIONS : SO_BSART FOR EKKO-BSART DEFAULT 'NB'.
    *SELECT-OPTIONS : SO_MATKL FOR EKPO-MATKL.
    *SELECT-OPTIONS : SO_MATNR FOR MSEG-MATNR.
    select-options   : so_werks for mseg-werks default 'P001'. "Plant
    select-options   : so_lgort for mseg-lgort. " Sto. Location
    select-options   : so_matnr for mseg-matnr obligatory. "Material code
    select-options   : so_mtart for mara-mtart. "Material type
    SELECT-OPTIONS   : SO_MATKL FOR EKPO-MATKL. "Material Group
    select-options   : so_date for sy-datum obligatory no-extension.
    SELECTION-SCREEN SKIP 2.
    selection-screen: skip,
                      begin of line,
                      comment (15) text-034.
    parameters:     p_all    radiobutton group del.
    selection-screen comment 25(9) for field p_all.
    parameters:     p_del    radiobutton group del.
    selection-screen comment 45(12) for field p_del.
    parameters:     p_undel  radiobutton group del default 'X'.
    selection-screen comment 65(14) for field p_undel.
    selection-screen end of line.
    SELECTION-SCREEN SKIP 2.
    SELECTION-SCREEN END OF BLOCK MAIN.
    *       Parameters              Begin with PR_
    *       Initialisation
    INITIALIZATION.
      s_repid = sy-repid.
      s_save = 'A'.
      perform f000_initialize_mov_type changing r_movtype[].
      PERFORM eventtab_build USING it_st_events[].
      PERFORM variant_init.
    *       S T A R T   O F   S E L E C T I O N
    START-OF-SELECTION.
      PERFORM initialize.
      perform f001_determine_fiscal_period.
      perform f002_determine_closing_stock changing it_stockclose[].
      if not so_date-low+6(2) eq '01'.
        perform f003_change_closing_stock changing  it_stockclose[].
      endif.
      perform f004_determine_mat_docs changing it_mkpf[]
                                                 it_mseg[].
      perform f005_receipts_issues using    it_mseg[]
                                     changing it_issue[]
                                              it_receipt[]
                                              it_matnr[].
    *---alv
      PERFORM comment_build USING it_st_list_top_of_page[].
      PERFORM fieldcat USING it_st_fieldcat[].
      PERFORM layout_build USING st_layout.
      PERFORM reuse_alv_list_display.
    END-OF-SELECTION.
    form initialize.
      clear:   r_loekz.
      refresh: r_loekz.
    *--- Deleted PO's only
      if p_del = 'X'.
        r_loekz-sign   = 'I'.
        r_loekz-option = 'EQ'.
        r_loekz-low    = 'L'.
        append r_loekz.
      endif.
    *--- UnDeleted PO's only
      if p_undel = 'X'.
        r_loekz-sign   = 'E'.
        r_loekz-option = 'EQ'.
        r_loekz-low    = ' '.
        append r_loekz.
      endif.
    endform.                    "initialize
    *&      Form  f000_initialize_mov_type
    *       Desc : Initialization of movement types
    form f000_initialize_mov_type  changing p_r_movtype like r_movtype[].
      data : lwa_movtype like line of p_r_movtype.
      lwa_movtype-sign = 'I'.
      lwa_movtype-option = 'EQ'.
      lwa_movtype-low = '101'.
      append lwa_movtype to p_r_movtype.
      lwa_movtype-low = '102'.
      append lwa_movtype to p_r_movtype.
    * Additional changes done for other movement types--> by deepak
      lwa_movtype-low = '103'.
      append lwa_movtype to p_r_movtype.
      lwa_movtype-low = '104'.
      append lwa_movtype to p_r_movtype.
      lwa_movtype-low = '105'.
      append lwa_movtype to p_r_movtype.
      lwa_movtype-low = '106'.
      append lwa_movtype to p_r_movtype.
      lwa_movtype-low = '122'.
      append lwa_movtype to p_r_movtype.
      lwa_movtype-low = '123'.
      append lwa_movtype to p_r_movtype.
      lwa_movtype-low = '161'.
      append lwa_movtype to p_r_movtype.
      lwa_movtype-low = '162'.
      append lwa_movtype to p_r_movtype.
      lwa_movtype-low = '201'.
      append lwa_movtype to p_r_movtype.
      lwa_movtype-low = '202'.
      append lwa_movtype to p_r_movtype.
      lwa_movtype-low = '261'.
      append lwa_movtype to p_r_movtype.
      lwa_movtype-low = '262'.
      append lwa_movtype to p_r_movtype.
      lwa_movtype-low = '301'.
      append lwa_movtype to p_r_movtype.
      lwa_movtype-low = '302'.
      append lwa_movtype to p_r_movtype.
      lwa_movtype-low = '303'.
      append lwa_movtype to p_r_movtype.
      lwa_movtype-low = '304'.
      append lwa_movtype to p_r_movtype.
      lwa_movtype-low = '305'.
      append lwa_movtype to p_r_movtype.
      lwa_movtype-low = '306'.
      append lwa_movtype to p_r_movtype.
      lwa_movtype-low = '309'.
      append lwa_movtype to p_r_movtype.
      lwa_movtype-low = '310'.
      append lwa_movtype to p_r_movtype.
      lwa_movtype-low = '331'.
      append lwa_movtype to p_r_movtype.
      lwa_movtype-low = '332'.
      append lwa_movtype to p_r_movtype.
      lwa_movtype-low = '333'.
      append lwa_movtype to p_r_movtype.
      lwa_movtype-low = '334'.
      append lwa_movtype to p_r_movtype.
      lwa_movtype-low = '335'.
      append lwa_movtype to p_r_movtype.
      lwa_movtype-low = '336'.
      append lwa_movtype to p_r_movtype.
      lwa_movtype-low = '511'.
      append lwa_movtype to p_r_movtype.
      lwa_movtype-low = '512'.
      append lwa_movtype to p_r_movtype.
      lwa_movtype-low = '531'.
      append lwa_movtype to p_r_movtype.
      lwa_movtype-low = '532'.
      append lwa_movtype to p_r_movtype.
      lwa_movtype-low = '541'.
      append lwa_movtype to p_r_movtype.
      lwa_movtype-low = '542'.
      append lwa_movtype to p_r_movtype.
      lwa_movtype-low = '561'.
      append lwa_movtype to p_r_movtype.
      lwa_movtype-low = '562'.
      append lwa_movtype to p_r_movtype.
      lwa_movtype-low = '601'.
      append lwa_movtype to p_r_movtype.
      lwa_movtype-low = '602'.
      append lwa_movtype to p_r_movtype.
      lwa_movtype-low = '641'.
      append lwa_movtype to p_r_movtype.
      lwa_movtype-low = '642'.
      append lwa_movtype to p_r_movtype.
      lwa_movtype-low = '643'.
      append lwa_movtype to p_r_movtype.
      lwa_movtype-low = '644'.
      append lwa_movtype to p_r_movtype.
      lwa_movtype-low = '701'.
      append lwa_movtype to p_r_movtype.
      lwa_movtype-low = '702'.
      append lwa_movtype to p_r_movtype.
      lwa_movtype-low = '909'.
      append lwa_movtype to p_r_movtype.
      lwa_movtype-low = '910'.
      append lwa_movtype to p_r_movtype.
    endform.                    " f000_initialize_mov_type
    *&      Form  f001_determine_fiscal_period
    *       Desc  Determination of fiscal period
    form f001_determine_fiscal_period .
      clear : w_monat,
              w_gjahr,
              w_date,
              w_buper,
              w_year.
      w_monat = so_date-low+4(2).
      if w_monat = '01'.
        w_monat = '12'.
        w_gjahr = so_date-low+0(4).
        w_date_fiscal = w_gjahr+0(4) - 1.
        w_gjahr = w_date_fiscal.
      else.
        w_monat = w_monat - 1.
        w_gjahr = so_date-low+0(4).
      endif.
      concatenate w_gjahr w_monat '01'  into w_gjahr.
    *****Determines Fiscal yr and period
      call function 'DATE_TO_PERIOD_CONVERT'
        EXPORTING
          i_date  = w_gjahr
          i_periv = 'V3'
        IMPORTING
          e_buper = w_buper
          e_gjahr = w_year.
      if sy-subrc <> 0.
      endif.
      w_datum = w_buper+1(2).
    **Month text
      select single ltx from t247 into t247-ltx
             where spras = 'E'
             and   mnr   = so_date-low+4(2).
    endform.                    " f001_determine_fiscal_period
    *&      Form  f001_determine_closing_stock
    *       Desc : Determination of closing stock
    form f002_determine_closing_stock
                       changing p_it_stockclose like it_stockclose[].
      data : lw_recs type i,
             w_dval like mseg-menge,
             w_opbal like mseg-menge.
      data : begin of lit_stockclose occurs 0,
             lfgja like mardh-lfgja,   "Fiscal yr
             lfmon like mardh-lfmon,   "Period
             werks like s031-werks,   "Plant
             matnr like mara-matnr,   "Material
             lgort like mseg-lgort,   "Storage Loc
             labst like mardh-labst,  "Unrestricted Stock
           end of lit_stockclose.
      data : begin of lit_mard occurs 0,
             matnr like mara-matnr,
             werks like mseg-werks,
             lgort like mseg-lgort,
             end of lit_mard.
      data : lwa_stockclose like line of p_it_stockclose.
      select matnr werks lgort from mard
      into corresponding fields of table lit_mard
      where matnr in so_matnr
      and werks in so_werks.
      refresh it_stockclose.
      clear   it_stockclose.
    *****Fetch Closing stock
    *If the entry is found in MARD then consider the same
    *else fetch the closing stock from MARDH.
      loop at lit_mard.
        refresh lit_stockclose.
        clear   lit_stockclose.
        select werks matnr lgort labst
              insme speme einme retme
              lfgja lfmon
               into corresponding fields of
                table lit_stockclose
               from mard
        where   lfmon = w_datum
        and     lfgja = w_year
        and     werks = lit_mard-werks
        and     matnr = lit_mard-matnr
        and     lgort = lit_mard-lgort.
        clear lw_recs.
        describe table lit_stockclose lines lw_recs.
    *If no entry in MARD fetch from MARDH.
        if lw_recs = 0.
          select werks matnr lgort labst
                insme speme einme retme
                lfgja lfmon
                 into corresponding fields of
                table lit_stockclose
                from mardh
         where   lfmon = w_datum
         and     lfgja = w_year
         and     werks = lit_mard-werks
         and     matnr = lit_mard-matnr
         and     lgort = lit_mard-lgort.
        endif.
        sort lit_stockclose by lfgja lfmon descending.
        read table lit_stockclose index 1.
        if sy-subrc eq 0.
          move-corresponding lit_stockclose to lwa_stockclose.
          append  lwa_stockclose to p_it_stockclose.
          clear  lwa_stockclose.
        endif.
      endloop.
    endform.                    " f001_determine_closing_stock
    *&      Form   f003_change_closing_stock
    *       Desc : Selection of the mat docs for the intermediate
    *              days if the selection begin date is not from
    *              first date of the corresponding month.
    form f003_change_closing_stock changing
                                       p_it_stockclose like it_stockclose[].
      data : lwa_stockclose like line of p_it_stockclose[].
      refresh : r_date,
                it_docs,
                it_finalstock.
      clear : r_date,
              lwa_stockclose.
      r_date-sign = 'I'.
      r_date-option = 'BT'.
      concatenate so_date-low+0(4)
                  so_date-low+4(2)
                  '01'
                  into r_date-low.
      r_date-high = so_date-low - 1.
      append r_date.
      clear r_date.
    read table r_loekz index 1.
      select mkpf~budat
             mseg~matnr
             mseg~bwart
             mseg~menge
             mseg~werks
             mseg~shkzg
             mseg~lgort
             makt~maktx
             into corresponding
             fields of
             table it_docs
             from mkpf as mkpf inner join mseg as mseg
             on mkpf~mandt = mseg~mandt and
                mkpf~mblnr = mseg~mblnr and
                mkpf~mjahr = mseg~mjahr
             inner join makt as makt
               on mseg~matnr = makt~matnr
             where
                mseg~werks IN SO_WERKS and
                mseg~matnr in so_matnr and
                mkpf~budat in r_date and
                mseg~bwart in r_movtype.
      Clear it_docs.
      loop at it_docs.
        if it_docs-shkzg = 'H'.
          it_docs-menge = - ( it_docs-menge ).
          modify it_docs.
        endif.
        move-corresponding it_docs to it_finalstock.
        collect it_finalstock.
        clear   it_finalstock.
        move it_docs-maktx to it_head-maktx.
      endloop.
      loop at p_it_stockclose into lwa_stockclose.
        read table it_finalstock with key
                           matnr = lwa_stockclose-matnr
                           werks = lwa_stockclose-werks
                           lgort = lwa_stockclose-lgort.
        if sy-subrc eq 0.
          lwa_stockclose-labst = lwa_stockclose-labst +
                                 it_finalstock-menge.
          modify p_it_stockclose from lwa_stockclose.
          read table p_it_stockclose into lwa_stockclose index 1.
          "with key matnr = wa_head-matnr.
          "budat = wa_head-p_date.
          if sy-subrc = 0.
            w_dval = lwa_stockclose-labst.
          ENDIF.
          clear lwa_stockclose.
        endif.
      endloop.
    endform.                    " f003_change_closing_stock
    *&      Form  f004_determine_mat_docs
    *       DEsc : Determination of Receipts and Issues
    form f004_determine_mat_docs  changing p_it_mkpf like it_mkpf[]
                                           p_it_mseg like it_mseg[].
      data : lwa_mkpf like line of p_it_mkpf[],
             lwa_mseg like line of p_it_mseg[],
              ls_quantity   type mseg-menge,
              sum_issue type mseg-menge,
              sum_receipt type mseg-menge,
              sum_531 type mseg-menge,
              sum_541 type mseg-menge,
              sum_101  type mseg-menge,
              sum_511  type mseg-menge,
              sum_261  type mseg-menge,
              sum_601  type mseg-menge,
              sum_201 type mseg-menge,
              sum_641 type mseg-menge,
              sum_po  type mseg-menge,
              sum_551  type mseg-menge,
              sum_331  type mseg-menge,
              sum_161  type mseg-menge,
              sum_305  type mseg-menge,
              sum_309  type mseg-menge,
              sum_701  type mseg-menge,
              sum_702  type mseg-menge.
    ***Determination of Mat Docs
      select mblnr xblnr budat mjahr cpudt from mkpf
             into corresponding fields
             of table it_mkpf
             where budat in so_date.
    ***Determination of Receipts and issues
    *  loop at p_it_mkpf into lwa_mkpf.
    *    select mblnr matnr bwart menge werks mjahr shkzg lgort
    *          from mseg into corresponding
    *          fields of lwa_mseg
    *          where mblnr = lwa_mkpf-mblnr
    *          and   mjahr = lwa_mkpf-mjahr
    *          and   werks in so_werks
    *          and   matnr in so_matnr
    *          and   bwart in r_movtype.
    *      if lwa_mseg-shkzg = 'H'.
    *        lwa_mseg-menge = - ( lwa_mseg-menge ).
    *      endif.
    *      move : lwa_mkpf-budat to lwa_mseg-budat,
    *             lwa_mkpf-xblnr to lwa_mseg-xblnr,
    *             lwa_mkpf-cpudt to lwa_mseg-cpudt.
    *      append lwa_mseg to p_it_mseg.
    *      move lwa_mseg-matnr to it_head-matnr.
    *      move lwa_mseg-budat to it_head-p_date.
    *      move lwa_mseg-bwart to it_head-bwart.
    *      append it_head.
    *      clear it_head.
    *      clear lwa_mseg.
    *    endselect.
    *  endloop.
      sort it_mkpf by budat cpudt .
      loop at it_mkpf.
        at new budat.
          if w_opbal = SPACE.
            it_head-openbal = w_dval.
            w_chk = 1.
          else.
            it_head-openbal = w_opbal.
            w_chk = 2.
          endif.
        endat.
        if w_chk = 1.
          it_head-openbal = w_dval.
        elseif w_chk = 2.
          it_head-openbal = w_opbal.
        endif.
        select  Single *
              from mseg
              where mblnr = it_mkpf-mblnr
              and   mjahr = it_mkpf-mjahr
              and   werks in so_werks
              and   matnr in so_matnr
              and   bwart in r_movtype.
        if mseg-matnr ne SPACE.
          move mseg-mblnr to it_mseg-xblnr.
          move mseg-matnr to it_mseg-matnr.
          move mseg-bwart to IT_mseg-bwart.
          move mseg-menge to it_mseg-menge.
          move mseg-werks to it_mseg-werks.
          move mseg-mjahr to it_mseg-mjahr.
          move mseg-shkzg to it_mseg-shkzg.
          move mseg-lgort to it_mseg-lgort.
          if it_mseg-shkzg = 'H'.
            it_mseg-menge = - ( lwa_mseg-menge ).
          endif.
          move : it_mkpf-budat to it_mseg-budat,
                 it_mkpf-xblnr to it_mseg-xblnr,
                 it_mkpf-cpudt to it_mseg-cpudt.
    *      append lwa_mseg to p_it_mseg.
          append it_mseg.
    *  it_head-R_PO = it_head-r_po + ls_quantity.
          if ( it_mseg-bwart eq '101'
             or   it_mseg-bwart eq '102'
             or   it_mseg-bwart eq '103'
             or   it_mseg-bwart eq '104'
             or   it_mseg-bwart eq '105'
             or  it_mseg-bwart eq '106'
             or  it_mseg-bwart eq '161'
             or  it_mseg-bwart eq '162'
             or  it_mseg-bwart eq '122'
             or  it_mseg-bwart eq '123'
             or  it_mseg-bwart eq '511'
             or  it_mseg-bwart eq '512'
             or  it_mseg-bwart eq '531'
             or  it_mseg-bwart eq '532'
             or  it_mseg-bwart eq '561'
             or  it_mseg-bwart eq '562'
             or  it_mseg-bwart eq '305'
             or  it_mseg-bwart eq '306'
             or  it_mseg-bwart eq '702') and it_mseg-shkzg = 'S'.
            move it_mseg-menge to ls_quantity.
            sum_receipt = sum_receipt + ls_quantity.
          elseif
           ( it_mseg-bwart eq '261'
             or   it_mseg-bwart eq '262'
             or   it_mseg-bwart eq '601'
             or   it_mseg-bwart eq '602'
             or   it_mseg-bwart eq '201'
             or  it_mseg-bwart eq '202'
             or  it_mseg-bwart eq '551'
             or  it_mseg-bwart eq '552'
             or  it_mseg-bwart eq '541'
             or  it_mseg-bwart eq '542'
             or  it_mseg-bwart eq '331'
             or  it_mseg-bwart eq '332'
             or  it_mseg-bwart eq '333'
             or  it_mseg-bwart eq '334'
             or  it_mseg-bwart eq '335'
             or  it_mseg-bwart eq '336'
             or  it_mseg-bwart eq '641'
             or  it_mseg-bwart eq '642'
             or  it_mseg-bwart eq '643'
             or  it_mseg-bwart eq '644'
             or  it_mseg-bwart eq '351'
             or  it_mseg-bwart eq '352'
             or  it_mseg-bwart eq '301'
             or  it_mseg-bwart eq '302'
             or  it_mseg-bwart eq '303'
             or  it_mseg-bwart eq '304'
             or  it_mseg-bwart eq '309'
             or  it_mseg-bwart eq '310'
             or  it_mseg-bwart eq '909'
             or  it_mseg-bwart eq '910'
             or  it_mseg-bwart eq '701')  and it_mseg-shkzg = 'S'.
             move it_mseg-menge to ls_quantity.
            sum_issue = sum_issue + ls_quantity.
          endif.
        if ( it_mseg-bwart eq '101' or it_mseg-bwart eq '102'
            or it_mseg-bwart eq '103' or it_mseg-bwart eq '104'
            or it_mseg-bwart eq '105' or it_mseg-bwart eq '106')
            And it_mseg-shkzg = 'S'.
            move it_mseg-menge to ls_quantity.
            sum_po = sum_po + ls_quantity.
          endif.
          if ( it_mseg-bwart eq '531'
             or it_mseg-bwart eq '532') and it_mseg-shkzg = 'S'.
            move it_mseg-menge to ls_quantity.
            sum_531 = sum_531 + ls_quantity.
          endif.
          if ( it_mseg-bwart eq '541' or it_mseg-bwart eq '542' ).
            move it_mseg-menge to ls_quantity.
            sum_541 = sum_541 + ls_quantity.
          endif.
          if ( it_mseg-bwart eq '102' or it_mseg-bwart eq '102' ).
            move it_mseg-menge to ls_quantity.
            sum_101 = sum_101 + ls_quantity.
          endif.
          if ( it_mseg-bwart eq '561' or it_mseg-bwart eq '562'
              OR IT_MSEG-BWART EQ '511' OR it_mseg-bwart eq '512').
            move it_mseg-menge to ls_quantity.
            sum_511 = sum_511 + ls_quantity.
          endif.
          if ( it_mseg-bwart eq '261' or it_mseg-bwart eq '262').
            move it_mseg-menge to ls_quantity.
            sum_261 = sum_261 + ls_quantity.
          endif.
          if ( it_mseg-bwart eq '601' or it_mseg-bwart eq '602').
            move it_mseg-menge to ls_quantity.
            sum_601 = sum_601 + ls_quantity.
          endif.
          if ( it_mseg-bwart eq '201' or it_mseg-bwart eq '202').
            move it_mseg-menge to ls_quantity.
            sum_201 = sum_201 + ls_quantity.
          endif.
        if ( it_mseg-bwart eq '551' or it_mseg-bwart eq '552').
            move it_mseg-menge to ls_quantity.
            sum_551 = sum_551 + ls_quantity.
          endif.
        if ( it_mseg-bwart eq '331' or it_mseg-bwart eq '332'
              or it_mseg-bwart eq '333' or it_mseg-bwart eq '334'
              or it_mseg-bwart eq '335' or it_mseg-bwart eq '336').
            move it_mseg-menge to ls_quantity.
            sum_331 = sum_331 + ls_quantity.
          endif.
        if ( it_mseg-bwart eq '161' or it_mseg-bwart eq '162'
              or it_mseg-bwart eq '123' or it_mseg-bwart eq '122').
            move it_mseg-menge to ls_quantity.
            sum_161 = sum_161 + ls_quantity.
          endif.
        if ( it_mseg-bwart eq '641' or it_mseg-bwart eq '642'
              or it_mseg-bwart eq '643' or it_mseg-bwart eq '644'
              or it_mseg-bwart eq '351' or it_mseg-bwart eq '352'
              or it_mseg-bwart eq '301' or it_mseg-bwart eq '302'
              or it_mseg-bwart eq '303' or it_mseg-bwart eq '304').
            move it_mseg-menge to ls_quantity.
            sum_641 = sum_641 + ls_quantity.
          endif.
      if ( it_mseg-bwart eq '305' or it_mseg-bwart eq '306').
            move it_mseg-menge to ls_quantity.
            sum_305 = sum_305 + ls_quantity.
          endif.
      if ( it_mseg-bwart eq '309' or it_mseg-bwart eq '310'
         or it_mseg-bwart eq '909' or it_mseg-bwart eq '910').
            move it_mseg-menge to ls_quantity.
            sum_309 = sum_309 + ls_quantity.
          endif.
    if ( it_mseg-bwart eq '701').
            move it_mseg-menge to ls_quantity.
            sum_701 = sum_701 + ls_quantity.
          endif.
    if ( it_mseg-bwart eq '702').
            move it_mseg-menge to ls_quantity.
            sum_702 = sum_702 + ls_quantity.
          endif.
          at end of budat.
        it_head-closing_bal = ( it_head-openbal + sum_receipt ) - sum_issue.
            w_opbal = it_head-closing_bal.
            move it_mseg-matnr to it_head-matnr.
            move it_mseg-budat to it_head-p_date.
            move it_mseg-bwart to it_head-bwart.
            move sum_po  to it_head-R_po.
            move sum_101  to it_head-R_ProdOrd.
            move sum_531 to it_head-R_ByProd.
            move sum_511  to it_head-R_OTHERS.
            move sum_receipt to it_head-r_total.
            move sum_261  to it_head-I_Prod.
            move sum_601  to it_head-I_cust.
            move sum_201  to it_head-I_CostCen.
            move sum_551  to it_head-I_Scrapping.
            move sum_541 to it_head-I_subcontractor.
            move sum_331  to it_head-I_Sampling.
            move sum_issue   to it_head-i_total.
            move sum_161  to it_head-PurRet.
            move sum_641  to it_head-stock_out.
            move sum_305  to it_head-stock_in.
            move sum_309  to it_head-M_to_M_transit.
            move sum_701  to it_head-phy_loss.
            move sum_702  to it_head-phy_gain.
            append it_head.
            w_chk = 0.
            sum_issue = 0.
            sum_receipt = 0.
            sum_531 = 0.
            sum_541 = 0.
            sum_101 = 0.
            SUM_511 = 0.
            sum_261 = 0.
            sum_601 = 0.
            sum_201 = 0.
            sum_po = 0.
            sum_551 = 0.
            sum_641 = 0.
            sum_701 = 0.
            sum_702 = 0.
          endat.
          clear it_head.
          clear it_mseg.
        endif.
    endloop.
      sort it_mseg by matnr budat bwart.
      sort it_head by matnr p_date bwart.
      delete ADJACENT duplicates from it_head.
    endform.                    " f004_determine_mat_docs
    *&      Form  f005_receipts_issues
    *       Desc
    form f005_receipts_issues  using    p_it_mseg  like it_mseg[]
                               changing p_it_issue like it_issue[]
                                        p_it_receipt like it_receipt[]
                                        p_it_matnr like it_matnr[].
      data : lwa_mseg like line of p_it_mseg[],
             lwa_issue like line of p_it_issue[],
             lwa_receipt like line of p_it_receipt[],
             lwa_matnr like line of p_it_matnr[],
             ls_quantity   type mseg-menge,
             wa_head type ty_head,
             lwa_stockclose like line of it_stockclose[].
    *  sort it_head by bwart p_date matnr.
    *  loop at it_head into wa_head.
    *    read table p_it_mseg into lwa_mseg with key bwart = wa_head-bwart.
    *    if sy-subrc = 0.
    *      if ( lwa_mseg-bwart eq '101'
    *          or   lwa_mseg-bwart eq '102'
    *          or   lwa_mseg-bwart eq '103'
    *          or   lwa_mseg-bwart eq '104'
    *          or   lwa_mseg-bwart eq '105'
    *          or  lwa_mseg-bwart eq '106') and lwa_mseg-shkzg = 'S'.
    *        loop at p_it_mseg into lwa_mseg where matnr = wa_head-matnr
    *                                        and   budat = wa_head-p_date
    *                                        and   bwart = wa_head-bwart.
    *          move lwa_mseg-menge to ls_quantity.
    *          wa_head-R_PO = ls_quantity + wa_head-R_PO.
    *          modify it_head from wa_head.
    *        endloop.
    *        clear ls_quantity .
    *      endif.
    *      if ( lwa_mseg-bwart eq '641'
    *       and lwa_mseg-shkzg = 'S' ).
    *        loop at p_it_mseg into lwa_mseg where matnr = wa_head-matnr
    *                                        and   budat = wa_head-p_date
    *                                        and   bwart = wa_head-bwart.
    *          IF SY-SUBRC = 0 .
    *            move lwa_mseg-menge to ls_quantity.
    *            wa_head-stock_out = ls_quantity + wa_head-stock_out.
    *            modify it_head from wa_head.
    *          ENDIF.
    *        endloop.
    *        clear ls_quantity .
    *      endif.
    *      read table it_stockclose into lwa_stockclose
    *         with key matnr = wa_head-matnr.
    *                  "budat = wa_head-p_date.
    *      if sy-subrc = 0.
    *        wa_head-openbal = lwa_stockclose-labst.
    *        modify it_head from wa_head.
    *      ENDIF.
    *    endif.
    *  endloop.
    *  sort it_head by bwart p_date matnr.
    *  loop at it_head into wa_head.
    *    read table it_mseg into lwa_mseg with key bwart = wa_head-bwart.
    *    if sy-subrc = 0.
    *      if ( lwa_mseg-bwart eq '101'
    *          or   lwa_mseg-bwart eq '102'
    *          or   lwa_mseg-bwart eq '103'
    *          or   lwa_mseg-bwart eq '104'
    *          or   lwa_mseg-bwart eq '105'
    *          or  lwa_mseg-bwart eq '106') and lwa_mseg-shkzg = 'S'.
    *        loop at it_mseg into lwa_mseg where matnr = wa_head-matnr
    *                                        and   budat = wa_head-p_date
    *                                        and   bwart = wa_head-bwart.
    *          move lwa_mseg-menge to ls_quantity.
    *          wa_head-R_PO = ls_quantity + wa_head-R_PO.
    *          modify it_head from wa_head.
    *        endloop.
    *        clear ls_quantity .
    *      endif.
    *      if ( lwa_mseg-bwart eq '641'
    *       and lwa_mseg-shkzg = 'S' ).
    *        loop at it_mseg into lwa_mseg where matnr = wa_head-matnr
    *                                        and   budat = wa_head-p_date
    *                                        and   bwart = wa_head-bwart.
    *          IF SY-SUBRC = 0 .
    *            move lwa_mseg-menge to ls_quantity.
    *            wa_head-stock_out = ls_quantity + wa_head-stock_out.
    *            modify it_head from wa_head.
    *          ENDIF.
    *        endloop.
    *        clear ls_quantity .
    *      endif.
    *      read table it_stockclose into lwa_stockclose
    *         with key matnr = wa_head-matnr.
    *                  "budat = wa_head-p_date.
    *      if sy-subrc = 0.
    *        wa_head-openbal = lwa_stockclose-labst.
    *        modify it_head from wa_head.
    *      ENDIF.
    *    endif.
    *  endloop.
    endform.                    " f005_receipts_issues
    *&      Form  COMMENT_BUILD
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM comment_build USING p_it_st_list_top_of_page TYPE slis_t_listheader
      DATA: ls_line TYPE slis_listheader.
      REFRESH p_it_st_list_top_of_page.
      CLEAR ls_line.
      ls_line-typ  = 'H'.
      ls_line-info  = 'Details of Stock Ledger'.
      APPEND ls_line TO p_it_st_list_top_of_page.
    ENDFORM.                    " COMMENT_BUILD
    *&      Form  TOP_OF_PAGE-ALV
    *       text
    FORM top_of_page-alv.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          it_list_commentary = it_st_list_top_of_page.
    ENDFORM.                    "TOP_OF_PAGE-ALV
    *&      Form  FIELDCAT
    *      -->P_IT_ST_FIELDCAT[]  text
    FORM fieldcat  USING p_it_st_fieldcat TYPE slis_t_fieldcat_alv.
      DATA: ls_fieldcat TYPE slis_fieldcat_alv.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname  = 'P_DATE'.
      ls_fieldcat-datatype   = 'P_DATE'.
      ls_fieldcat-outputlen  = 18.
      ls_fieldcat-seltext_m  = text-002 .
    *  ls_fieldcat-rollname   = 'MATNR'.
      ls_fieldcat-key         = 'X'.
      APPEND ls_fieldcat TO p_it_st_fieldcat.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname   = 'MATNR'.
      ls_fieldcat-rollname    = 'MATNR'.
      ls_fieldcat-ddictxt     = 'L'.
      ls_fieldcat-outputlen  = 18.
      APPEND ls_fieldcat TO p_it_st_fieldcat.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname   = 'MAKTX'.
      ls_fieldcat-rollname    = 'MAKTX'.
      ls_fieldcat-ddictxt     = 'L'.
        ls_fieldcat-outputlen  = 40.
      APPEND ls_fieldcat TO p_it_st_fieldcat.
    *  CLEAR ls_fieldcat.
    *  ls_fieldcat-fieldname   = 'BWART'.
    *  ls_fieldcat-rollname    = 'BWART'.
    *  ls_fieldcat-ddictxt     = 'L'.
    *  APPEND ls_fieldcat TO p_it_st_fieldcat.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname   = 'OPENBAL'.
      ls_fieldcat-rollname    = 'OPENBAL'.
      ls_fieldcat-ddictxt     = 'L'.
      ls_fieldcat-seltext_m  = text-003 .
      APPEND ls_fieldcat TO p_it_st_fieldcat.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname   = 'R_PO'.
      ls_fieldcat-rollname    = 'R_PO'.
      ls_fieldcat-ddictxt     = 'L'.
      ls_fieldcat-seltext_m  = text-004 .
      APPEND ls_fieldcat TO p_it_st_fieldcat.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname   = 'R_PRODORD'.
      ls_fieldcat-rollname    = 'R_PRODORD'.
      ls_fieldcat-ddictxt     = 'L'.
      ls_fieldcat-seltext_m  = text-005 .
      APPEND ls_fieldcat TO p_it_st_fieldcat.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname   = 'R_BYPROD'.
      ls_fieldcat-rollname    = 'R_BYPROD'.
      ls_fieldcat-ddictxt     = 'L'.
      ls_fieldcat-seltext_m  = text-006 .
      APPEND ls_fieldcat TO p_it_st_fieldcat.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname   = 'R_OTHERS'.
      ls_fieldcat-rollname    = 'R_OTHERS'.
      ls_fieldcat-ddictxt     = 'L'.
      ls_fieldcat-seltext_m  = text-007 .
      APPEND ls_fieldcat TO p_it_st_fieldcat.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname   = 'R_TOTAL'.
      ls_fieldcat-rollname    = 'R_TOTAL'.
      ls_fieldcat-ddictxt     = 'L'.
      ls_fieldcat-seltext_m  = text-008 .
      APPEND ls_fieldcat TO p_it_st_fieldcat.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname   = 'I_PROD'.
      ls_fieldcat-rollname    = 'I_PROD'.
      ls_fieldcat-ddictxt     = 'L'.
      ls_fieldcat-seltext_m  = text-009 .
      APPEND ls_fieldcat TO p_it_st_fieldcat.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname   = 'I_CUST'.
      ls_fieldcat-rollname    = 'I_CUST'.
      ls_fieldcat-ddictxt     = 'L'.
      ls_fieldcat-seltext_m  = text-010 .
      APPEND ls_fieldcat TO p_it_st_fieldcat.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname   = 'I_COSTCEN'.
      ls_fieldcat-rollname    = 'I_COSTCEN'.
      ls_fieldcat-ddictxt     = 'L'.
      ls_fieldcat-seltext_m  = text-011 .
      APPEND ls_fieldcat TO p_it_st_fieldcat.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname   = 'I_SCRAPPING'.
      ls_fieldcat-rollname    = 'I_SCRAPPING'.
      ls_fieldcat-ddictxt     = 'L'.
      ls_fieldcat-seltext_m  = text-012 .
      APPEND ls_fieldcat TO p_it_st_fieldcat.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname   = 'I_SUBCONTRACTOR'.
      ls_fieldcat-rollname    = 'I_SUBCONTRACTOR'.
      ls_fieldcat-ddictxt     = 'L'.
      ls_fieldcat-seltext_m  = text-013 .
      APPEND ls_fieldcat TO p_it_st_fieldcat.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname   = 'I_SAMPLING'.
      ls_fieldcat-rollname    = 'I_SAMPLING'.
      ls_fieldcat-ddictxt     = 'L'.
      ls_fieldcat-seltext_m  = text-014 .
      APPEND ls_fieldcat TO p_it_st_fieldcat.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname   = 'I_TOTAL'.
      ls_fieldcat-rollname    = 'I_TOTAL'.
      ls_fieldcat-ddictxt     = 'L'.
      ls_fieldcat-seltext_m  = text-015 .
      APPEND ls_fieldcat TO p_it_st_fieldcat.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname   = 'PURRET'.
      ls_fieldcat-rollname    = 'PURRET'.
      ls_fieldcat-ddictxt     = 'L'.
      ls_fieldcat-seltext_m  = text-016 .
      APPEND ls_fieldcat TO p_it_st_fieldcat.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname   = 'STOCK_OUT'.
      ls_fieldcat-rollname    = 'STOCK_OUT'.
      ls_fieldcat-ddictxt     = 'L'.
      ls_fieldcat-seltext_m  = text-017 .
      APPEND ls_fieldcat TO p_it_st_fieldcat.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname   = 'STOCK_IN'.
      ls_fieldcat-rollname    = 'STOCK_IN'.
      ls_fieldcat-ddictxt     = 'L'.
      ls_fieldcat-seltext_m  = text-018 .
      APPEND ls_fieldcat TO p_it_st_fieldcat.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname   = 'STOCK_TRANSIT'.
      ls_fieldcat-rollname    = 'STOCK_TRANSIT'.
      ls_fieldcat-ddictxt     = 'L'.
      ls_fieldcat-seltext_m  = text-019 .
      APPEND ls_fieldcat TO p_it_st_fieldcat.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname   = 'M_TO_M_TRANSIT'.
      ls_fieldcat-rollname    = 'M_TO_M_TRANSIT'.
      ls_fieldcat-ddictxt     = 'L'.
      ls_fieldcat-seltext_m  = text-020 .
      APPEND ls_fieldcat TO p_it_st_fieldcat.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname   = 'PHY_LOSS'.
      ls_fieldcat-rollname    = 'PHY_LOSS'.
      ls_fieldcat-ddictxt     = 'L'.
      ls_fieldcat-seltext_m  = text-021 .
      APPEND ls_fieldcat TO p_it_st_fieldcat.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname   = 'PHY_GAIN'.
      ls_fieldcat-rollname    = 'PHY_GAIN'.
      ls_fieldcat-ddictxt     = 'L'.
      ls_fieldcat-seltext_m  = text-022 .
      APPEND ls_fieldcat TO p_it_st_fieldcat.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname   = 'CLOSING_BAL'.
      ls_fieldcat-rollname    = 'CLOSING_BAL'.
      ls_fieldcat-ddictxt     = 'L'.
      ls_fieldcat-seltext_m  = text-023 .
      APPEND ls_fieldcat TO p_it_st_fieldcat.
    ENDFORM.                    " FIELDCAT
    *&      Form  LAYOUT_BUILD
    *       text
    *      -->P_ST_LAYOUT  text
    FORM layout_build  USING    p_st_layout TYPE slis_layout_alv.
      p_st_layout-box_fieldname       = 'SELK'.  " Checkbox
      p_st_layout-get_selinfos        = 'X'.
      p_st_layout-f2code              =  'PICK' .  " Doppelklickfunktion
      p_st_layout-confirmation_prompt = 'X'.       "Sicherheitsabfrage
      p_st_layout-key_hotspot         = 'X'.       "Schlüssel als Hotspot
      p_st_layout-info_fieldname      = 'COL'.     "Zeilenfarbe
    ENDFORM.                    " LAYOUT_BUILD
    *&      Form  REUSE_ALV_LIST_DISPLAY
    *       text
    FORM reuse_alv_list_display .
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
           EXPORTING
                 i_background_id          = 'ALV_BACKGROUND'
                 i_callback_program       = s_repid
    *            I_CALLBACK_PF_STATUS_SET = S_STATUS
    *            I_CALLBACK_USER_COMMAND     = S_USER_COMMAND
    *            I_STRUCTURE_NAME         = ''
    *            IS_LAYOUT                = ST_LAYOUT
                 it_fieldcat              = it_st_fieldcat[]
    *            IT_EXCLUDING             =
    *            IT_SPECIAL_GROUPS        = ST_SP_GROUP
    *            IT_SORT                  =
    *            IT_FILTER                =
    *            IS_SEL_HIDE              =
    *            I_DEFAULT                = 'X'
    *            I_SAVE                   = S_SAVE
    *            IS_VARIANT               = S_VARIANT
                IT_EVENTS                = IT_ST_EVENTS[]
    *            IT_EVENT_EXIT            =
    *            IS_PRINT                 =
    *            IS_REPREP_ID             =
    *            I_SCREEN_START_COLUMN    = 0
    *            I_SCREEN_START_LINE      = 0
    *            I_SCREEN_END_COLUMN      = 0
    *            I_SCREEN_END_LINE        = 0
    *     IMPORTING
    *           E_EXIT_CAUSED_BY_CALLER   =
    *           ES_EXIT_CAUSED_BY_USER    =
           TABLES
                t_outtab                  =  it_head.
    ENDFORM.                    " REUSE_ALV_LIST_DISPLAY
    *&      Form  EVENTTAB_BUILD
    *       text
    *      -->P_IT_ST_EVENTS[]  text
    FORM eventtab_build  USING    p_st_events  TYPE slis_t_event .
      DATA: ls_event TYPE slis_alv_event.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
        EXPORTING
          i_list_type = 0
        IMPORTING
          et_events   = p_st_events.
      READ TABLE p_st_events WITH KEY name = slis_ev_top_of_page
                               INTO ls_event.
      IF sy-subrc = 0.
        MOVE st_formname_top_of_page TO ls_event-form.
        APPEND ls_event TO p_st_events.
      ENDIF.
      READ TABLE p_st_events WITH KEY name = slis_ev_user_command
                               INTO ls_event.
      IF sy-subrc = 0.
        MOVE s_user_command TO ls_event-form.
        APPEND ls_event TO p_st_events.
      ENDIF.
    *  READ TABLE p_st_events WITH KEY name = slis_ev_pf_status_set
    *                         INTO ls_event.
    *  IF sy-subrc = 0.
    *    MOVE s_status TO ls_event-form.
    *    APPEND ls_event TO p_st_events.
    *  ENDIF.
    ENDFORM.                    " EVENTTAB_BUILD
    *&      Form  VARIANT_INIT
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM variant_init .
      CLEAR s_variant.
      s_variant-report = s_repid.
      s_variant-handle = code.
    ENDFORM.                    " VARIANT_INIT

  • Where to put Validation Code?

    Up until now, Im still having second-thoughts of where to put validation code when setting attributes of an entity.
    Right now I have created lots of custom validators --(implement JbovalidatorInterface) that calls stored procedures to validate the value entered. But sometimes, i just use a ViewObject and query it on the setterAttribute method of the Entity and just manually throw a JboException of the value is invalid based on some business rule.
    Question is, what are the best practices where to put validation codes? do we have to be strict that we always put all validations on Validators or are we free to just throw JboExceptions anywhere on the BC classes' code.
    regards,
    Anton

    1. The reason I have a custom validator and I don't normally use the built in declarative validators is that the error message generated when the validation fails is fixed, only one message. I decided to have create a custom validator is that I need to test a one attribute for many cases in each case should produce a distinct error message. So if I use the built in validators, I would have to create lots of built in validators for that single attribute only. (and i have lots of entities and lots of attributes that needs business rule validation). So, I decided to create a custom validator, that calls the stored procedure, the stored procedure takes care of all test cases, for that attribute only, and I can return a dynamic error message depending on the test case that failed. What do you think about the approach?
    It's a little extra work to create a reusable validator class that will only be used once, but whether you do it that way or encapsulate the call in a helper class that your one-off method validator code delegates too, it seems similar to me. So it's more of a stylistic choice for you which you like better. Now, if your reusable validator were enable to encapsulate
    2. When I said anywhere; I meant inside the setterAttribute methods on the Entity and on the ViewRowImpl, orThe ViewImpl class or inside a method on an ApplicationModule?
    Rather than writing code in the setAttribute, I recommend using attribute-level method validators. This makes it more clear where all your validation code lives.
    I don't recommend performing validation in the view object level since entity objects are the component in the system that are tasked with handling validation. It would be easy to circumvent view level validation checks unless you make a lot of assumptions about exactly how your application is working.
    3. One other issue is that Validator methods are for validation purposes only. So its not a good idea to put in attribute setters to other attributes inside there. So you put the attribute setter logic outside of the validator usually inside the setAttribute() just after validator returns. But there are cases that is very straightfoward to put validation logic inside the setAttribute; meaning, inside the setAttribute() method, I test for a condition, if it fails, just throw a JboException, if its true, continue with the otherAttributes setter logic.
    Whether attribute setting of other attributes is performed in a setter method or in an attribute-level method validator, either way you will need conditional logic to avoid going into a validation "loop" (which eventually will throw an exception if after 10 attempts the object is still not valid at posting time.

Maybe you are looking for