Portal UI source Code

Can we write an sql query in the Login PEI of portal UI source code?
we have requirement where we have to fetch some details from our database and display it in our authenticated landing page.

Hi
Can you please confirm if this is for Oracle Weblogic Portal 10.x (Former BEA WLP) or Oracles its own original Oracle Portal. If its BEA WLP, then explain this "Login PEI". I do not recollect any out of box Login Portlet shipped with WLP 10.x. So what exactly you mean by Login PEI.
Creating a Login Portlet is very simple and straight forward either using Pageflow based login controller or BackingFile based Login approach in WLP. Once you have, you can always call your custom SQL code. Infact we do the same thing. Once the User logs in, we need to get some of his details like groups, roles etc which are stored in our custom db with that userid as PK. So we get this information after login is successfull, and store in the session or user profile for later purposes.
If this is for Oracles own old Oracle Portal, then please post your question in Oracle Portal Forums for quicker/better response: Oracle Application Server Portal
Thanks
Ravi Jegga

Similar Messages

  • Sample  PL/SQL Portlet Source Code for Oracle Portal 9ias

    Hi, I'm a newbie of Oracle Portal technology, and I have a problem:
    I would create a PL/SQL portlet that realizes the following functions:
    1) Retrieve the username of the portal user logged from WWCTX_API.GET_USER function.
    2) Insert into an oracle db table two values about two hidden fields in the HTML FORM of the portlet.
    3) Realize the insert commit through the click on the submit button on the Html form of the portlet. I would redirect by the same button to an other page url also.
    I've never developed in Portal, and may be useful if someone could post me the source code of the SHOW MODE SECTION in the PROCEDURE SHOW of a SAMPLE PL/SQL PORTLET that realizes the upper functions.
    Thanks a lot....

    Hi
    Here's the code from Helloworld_Portlet example:
    procedure show
    p_portlet_record wwpro_api_provider.portlet_runtime_record
    is
    l_portlet wwpro_api_provider.portlet_record;
    begin
    if (not is_runnable(
    p_provider_id => p_portlet_record.provider_id
    ,p_reference_path => p_portlet_record.reference_path)
    ) then
    raise wwpro_api_provider.PORTLET_SECURITY_EXCEPTION;
    end if;
    Retrieve the portlet information.
    l_portlet := get_portlet_info(
    p_provider_id => p_portlet_record.provider_id
    ,p_language => p_portlet_record.language
    if (p_portlet_record.exec_mode = wwpro_api_provider.MODE_SHOW) then
    if (p_portlet_record.has_title_region) then
    Draw the portlet header and specify what links are available
    from that header (i.e. details, customize, help, and about).
    The has_title property is set at the page region level.
    wwui_api_portlet.draw_portlet_header
    p_provider_id => p_portlet_record.provider_id
    ,p_portlet_id => p_portlet_record.portlet_id
    ,p_title => l_portlet.title
    ,p_has_details => true
    ,p_has_edit => true
    ,p_has_help => true
    ,p_has_about => true
    ,p_referencepath => p_portlet_record.reference_path
    ,p_back_url => p_portlet_record.page_url
    end if;
    Draw the portlet borders.
    The has_border property is set at the page region level.
    wwui_api_portlet.open_portlet(p_portlet_record.has_border);
    Display the content of the portlet in the show mode.
    Use the wwui_api_portlet.portlet_text() API when
    generating the content of the portlet so that the
    output uses the portlet CSS.
    htp.p(wwui_api_portlet.portlet_text(
    p_string => 'Hello World - Mode Show'
    ,p_level => 1
    if (p_portlet_record.has_border) then
    wwui_api_portlet.close_portlet;
    end if;
    elsif (p_portlet_record.exec_mode = wwpro_api_provider.MODE_SHOW_ABOUT) then
    Display the about page for the portlet.
    htp.p('Hello World - Mode Show About');
    elsif (p_portlet_record.exec_mode = wwpro_api_provider.MODE_SHOW_EDIT) then
    Display the edit page for the portlet.
    htp.p('Hello World - Mode Show Edit');
    elsif (p_portlet_record.exec_mode = wwpro_api_provider.MODE_SHOW_HELP) then
    Display the help page for the portlet.
    htp.p('Hello World - Mode Show Help');
    elsif (p_portlet_record.exec_mode = wwpro_api_provider.MODE_SHOW_EDIT_DEFAULTS) then
    Display the edit defaults page for the portlet.
    htp.p('Hello World - Mode Edit Defaults');
    elsif (p_portlet_record.exec_mode = wwpro_api_provider.MODE_SHOW_DETAILS) then
    Display the details page for the portlet.
    htp.p('Hello World - Mode Show Details');
    elsif (p_portlet_record.exec_mode = wwpro_api_provider.MODE_PREVIEW) then
    Display the preview page for the portlet.
    htp.p('Hello World - Mode Show Preview');
    end if;
    end show;
    I think you need to add this:
    You can get the values of your html-form with this command:
    v_hidden_1 varchar2(256);
    v_hidden_2 varchar2(256);
    v_hidden_1 := wwpro_api_parameters.get_value('name_of_hidden_1_in_html_form','p');
    v_hidden_2 := wwpro_api_parameters.get_value('name_of_hidden_2_in_html_form','p');
    You can get the actual URL with this command:
    v_url := p_portlet_record.page_url;
    Hope that helps.
    Regards,
    Mark

  • How to get the source code of a PRT application in the portal

    Hi!
    Does anybody know how to get the source code of a PRT application in the portal?
    Thanks in advance,
    Celso

    Celso,
    If its Java-based code have a look at the properties of an iView that belongs to the application in question and copy the value of the Code Link parameter e.g. 'com.sap.pct.hcm.rc_vacancyrequestov.default'.
    Search the Portal installation directory under /j233/cluster/server/ for a .par.bak file of the same name, removing .default from the codelink parameter
    e.g. com.sap.pct.hcm.rc_vacancyrequestov.par.bak
    Copt this locally and import into Netweaver Developer Studio. You will have to decompilte the class files with a decompiler such as DJ Decompiler or Cavaj (search with Google).
    Cheers,
    Steve

  • Retrieve already deployed webdynpro for java source code from portal server

    HI ,
       We have webdynpro for java apllication already deployed on the J2EE server.  We found the ear file related to this application.  But I am not able to make any changes to the ear file in NWDS as it cannot be directly imported into NWDS.  We do not have NWDI for software logistics and the resource who built the WDJ application has left the company.  Is there any way that I can retrieve the complete source code of the application from the portal.  I need to make some changes to Webdynpro component and its view.  I have worked with basis team to retrieve the ear file from portal server.  But I could not make any progress just with the ear file.  Thank you for your help in advance
    Regards,
    KMM.

    You are probably breaking some license agreement by de-compiling the content of the 'war' files. Why not ask the people who provided the 'war' file if you could have the source and build system.

  • Enterprise Portal Source code

    I need to customise the login page and logged on page. Please help me out in finding the source code of the portal. so that i can make changes.
    Thanks in advance
    Arun

    Hello hexaware,
    You can get more information about it in the following links: http://help.sap.com/saphelp_nw04/helpdata/en/23/c0e240beb0702ae10000000a155106/content.htm
    you will need to change authschemes.xml file as well : http://help.sap.com/saphelp_nw04/helpdata/en/1a/3afd4e641b8f42ac07bb77fe30375b/content.htm
    Hope this helps if it does, please reward points in SDN.
    cheers,
    Shantanu

  • Could not start the portal server after installing Portal Source Code

    Hi all, I try to install the portal source code and compile portal source code on the development computer. It does not work. I use Visual Studio 2002. Now I can not start the portal server. I got the error. I delete source code from webapp\portal folder. I still get the following error.
    948 03-14 11:16:20 Error UI Infrastructure 3328 3340 com.plumtree.uiinfrastructure.activityspace.Interpreter.HandleRequest() Unable to load request data._System.NullReferenceException_ at com.plumtree.uiinfrastructure.application.RequestData.LoadQSSettings() at com.plumtree.uiinfrastructure.activityspace.Interpreter.HandleRequest(IXPRequest request, IXPResponse response, ISessionManager session, IApplication application)949 03-14 11:16:20 Error UI Infrastructure 3328 3340 com.plumtree.uiinfrastructure.activityspace.Interpreter.HandleError() Server error._System.NullReferenceException_ at com.plumtree.uiinfrastructure.application.RequestData.LoadQSSettings() at com.plumtree.uiinfrastructure.activityspace.Interpreter.HandleRequest(IXPRequest request, IXPResponse response, ISessionManager session, IApplication application)950 03-14 11:16:20 Info UI Infrastructure 3328 3340 com.plumtree.uiinfrastructure.activityspace.Interpreter.DisplayServerErrorPage() Server error, redirecting to error page.951 03-14 11:16:20 Error UI Infrastructure 3328 3340 com.plumtree.uiinfrastructure.activityspace.Interpreter.HandleError() Error displaying error page._com.plumtree.openfoundation.util.XPException_ at System.Environment.GetStackTrace(Exception e) at System.Environment.GetStackTrace(Exception e) at System.Environment.get_StackTrace() at com.plumtree.openfoundation.util.XPException..ctor(String message) at com.plumtree.portaluiinfrastructure.login.PTPersonalSettingsHelper.GetPersonalSettingValue(String sSettingName, ISessionManager sessionManager, IApplication application, IPTSession ptSession) at com.plumtree.portaluiinfrastructure.login.PTPersonalSettingsHelper.GetPersonalSettingValue(String sSettingName, AActivitySpace asSpace) at com.plumtree.portalpages.common.uiparts.NavigationModel.Init(AActivitySpace parent) at com.plumtree.uiinfrastructure.activityspace.AActivitySpace.RegisterModel(String modelName, String storageName) at com.plumtree.uiinfrastructure.activityspace.AActivitySpace.RegisterModel(String modelName) at com.plumtree.portalpages.common.uiparts.PlumtreeAS.Init() at com.plumtree.portalpages.common.error.ErrorAS.Init() at com.plumtree.uiinfrastructure.activityspace.Interpreter.CreateSpace(RequestData tempData) at com.plumtree.uiinfrastructure.activityspace.Interpreter.DisplayServerErrorPage(RequestData tempData) at com.plumtree.uiinfrastructure.activityspace.Interpreter.HandleError(Exception e, Boolean bDisplayErrorInComments, RequestData tempData) at com.plumtree.uiinfrastructure.activityspace.Interpreter.HandleRequest(IXPRequest request, IXPResponse response, ISessionManager session, IApplication application) at com.plumtree.uiinfrastructure.activityspace.Interpreter.DoService(IXPRequest request, IXPResponse response, ISessionManager session, IApplication application) at com.plumtree.uiinfrastructure.web.XPPage.Service(HttpRequest httpRequest, HttpResponse httpResponse, HttpSessionState httpSession, HttpApplicationState httpApplication) at com.plumtree.portaluiinfrastructure.activityspace.PlumHandler.ProcessRequest(HttpContext context) at System.Web.CallHandlerExecutionStep.System.Web.HttpApplication+IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) at System.Web.HttpApplication.ResumeSteps(Exception error) at System.Web.HttpApplication.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData) at System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr) at System.Web.HttpRuntime.ProcessRequest(HttpWorkerRequest wr) at System.Web.Hosting.ISAPIRuntime.ProcessRequest(IntPtr ecb, Int32 iWRType)
    I don't know how to fix this problem. Should I reinstall portal server? Thank you for your help! Jan

    Hi all, I try to install the portal source code and compile portal source code on the development computer. It does not work. I use Visual Studio 2002. Now I can not start the portal server. I got the error. I delete source code from webapp\portal folder. I still get the following error.
    948 03-14 11:16:20 Error UI Infrastructure 3328 3340 com.plumtree.uiinfrastructure.activityspace.Interpreter.HandleRequest() Unable to load request data._System.NullReferenceException_ at com.plumtree.uiinfrastructure.application.RequestData.LoadQSSettings() at com.plumtree.uiinfrastructure.activityspace.Interpreter.HandleRequest(IXPRequest request, IXPResponse response, ISessionManager session, IApplication application)949 03-14 11:16:20 Error UI Infrastructure 3328 3340 com.plumtree.uiinfrastructure.activityspace.Interpreter.HandleError() Server error._System.NullReferenceException_ at com.plumtree.uiinfrastructure.application.RequestData.LoadQSSettings() at com.plumtree.uiinfrastructure.activityspace.Interpreter.HandleRequest(IXPRequest request, IXPResponse response, ISessionManager session, IApplication application)950 03-14 11:16:20 Info UI Infrastructure 3328 3340 com.plumtree.uiinfrastructure.activityspace.Interpreter.DisplayServerErrorPage() Server error, redirecting to error page.951 03-14 11:16:20 Error UI Infrastructure 3328 3340 com.plumtree.uiinfrastructure.activityspace.Interpreter.HandleError() Error displaying error page._com.plumtree.openfoundation.util.XPException_ at System.Environment.GetStackTrace(Exception e) at System.Environment.GetStackTrace(Exception e) at System.Environment.get_StackTrace() at com.plumtree.openfoundation.util.XPException..ctor(String message) at com.plumtree.portaluiinfrastructure.login.PTPersonalSettingsHelper.GetPersonalSettingValue(String sSettingName, ISessionManager sessionManager, IApplication application, IPTSession ptSession) at com.plumtree.portaluiinfrastructure.login.PTPersonalSettingsHelper.GetPersonalSettingValue(String sSettingName, AActivitySpace asSpace) at com.plumtree.portalpages.common.uiparts.NavigationModel.Init(AActivitySpace parent) at com.plumtree.uiinfrastructure.activityspace.AActivitySpace.RegisterModel(String modelName, String storageName) at com.plumtree.uiinfrastructure.activityspace.AActivitySpace.RegisterModel(String modelName) at com.plumtree.portalpages.common.uiparts.PlumtreeAS.Init() at com.plumtree.portalpages.common.error.ErrorAS.Init() at com.plumtree.uiinfrastructure.activityspace.Interpreter.CreateSpace(RequestData tempData) at com.plumtree.uiinfrastructure.activityspace.Interpreter.DisplayServerErrorPage(RequestData tempData) at com.plumtree.uiinfrastructure.activityspace.Interpreter.HandleError(Exception e, Boolean bDisplayErrorInComments, RequestData tempData) at com.plumtree.uiinfrastructure.activityspace.Interpreter.HandleRequest(IXPRequest request, IXPResponse response, ISessionManager session, IApplication application) at com.plumtree.uiinfrastructure.activityspace.Interpreter.DoService(IXPRequest request, IXPResponse response, ISessionManager session, IApplication application) at com.plumtree.uiinfrastructure.web.XPPage.Service(HttpRequest httpRequest, HttpResponse httpResponse, HttpSessionState httpSession, HttpApplicationState httpApplication) at com.plumtree.portaluiinfrastructure.activityspace.PlumHandler.ProcessRequest(HttpContext context) at System.Web.CallHandlerExecutionStep.System.Web.HttpApplication+IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) at System.Web.HttpApplication.ResumeSteps(Exception error) at System.Web.HttpApplication.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData) at System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr) at System.Web.HttpRuntime.ProcessRequest(HttpWorkerRequest wr) at System.Web.Hosting.ISAPIRuntime.ProcessRequest(IntPtr ecb, Int32 iWRType)
    I don't know how to fix this problem. Should I reinstall portal server? Thank you for your help! Jan

  • Find the source code of Portal

    I need to customise the portal. I need to find the source code of the portal.
    Please give the path where i can find the source code.
    Thanks in advance
    Arun

    Hi Hexaware Consultants,
    To change the look and feel of MastHead iView ...
    -The three main files in the masthead are HeaderiView.jsp,LogInRedirect.jsp and LogOffConfirmMsg.jsp
    -The HeaderiView contains the masthead users see when they are in the portal.
    -Once you added your link to the HeaderiView.jsp,upload the par file.
    -Once the par file is uploaded to the portal,you need to create a masthead iview based on this par file.
    -Then this iView will be used for masthead on the framework page.
    -create a folder in portal catalog-right click the folder->create a iView from par->select your own masthead iView->choose next->choose default component and click next->Enter the properties like-iView name,iView ID,prefix,Save as -iView and click next>save.
    Here is the important step :
    Add the iView to the framework page,then only it will be visible to the end users.
    Browse the ramework page being used by the portal in the portal catalog
    Right click on he page->edit->Page Layout->Select masthead iView on the framework page and click remove.
    now iViews(Right click)->Widgets_masthead->Add iView to page->Delta Link->Position the masthead.->Logoff and logon to the portal.
    It should work fine for you now I guess.
    Thank you.
    I was also working in Hexaware 2 years back
    Regards,
    Karthick

  • When SCSM 2012sp1 portal Source Code release ?

    When SCSM 2012sp1 portal Source Code release? any release date?
    Regards
    Shujjat

    Hi Shujjat,
    We consider that it won't happen at all.
    Cheers,
    Marat
    Site: www.scutils.com  Twitter:
      LinkedIn:
      Facebook:

  • BAM Portal Source Code

    Hi,
    Can I get complete source code of out of the box BizTalk BAM Portal?
    Thanks and Regards, Sagar.

    Hi sagar,
    <<BIZTALK INSTALLTION DIRECTORY>>\Microsoft BizTalk Server 2010\BAMPortal
    contains the image and stylesheet for your BAM portal. If you want to add your company’s image in the BAM portal, you can do so along with the Microsoft logo or play with these files, but the soruce
    code is not available. I don’t think the soruce code is avilable from BizTalk 2006 onwards.
    If you want to develop a custom BAM like porta lyou have some options:
    Use BAM Web Services,  Management and Query to create custom BAM portal.
    accessing data from BAMPrimaryImport  database’s
    bam_<Activity      Name>_AllInstances views
    Or useBAMManagementService
    API
    If this answers your question please mark it accordingly. If this post is helpful, please vote as helpful.

  • How to get source code from portal app

    Hi,
    I have a successful Web dynpro portal application running, which I would like to modify. We lost the source code. Is there any way that I can get the source code from the portal?.
    Thanks and I appreciate your help.
    /Sunita.

    Hi,
    You can extract class files from app.jar and decompile it(.ear->.wda) but it is only generated classes without metadata. Metadata is stored in .wda file but format is not compatible with studio. That all options you have.
    Go through the following links, it will be helpfull to you
    Some of the solutions provided in it
    [Re: Retrieve the source code from .EAR;
    [Restore source code from ear file;
    Regards
    Raghu

  • How to get the source code in PAR file

    Hi All,
    I used the PAR migration tool to migrate from PAR to EAR file. When I imported the EAR into NWDS 7.3, I was just able to see the structure and jsp files and could not find the java source code files. I would requires the java source code to make modifications so that deprecated APIs can be replaced and to also make the code compatible with JDK 1.6.
    I think the original 7.0 PAR file itself does not contain the source code. I decided to use the "Include source code" option when exporting the 7.0 PAR.
    I have the portal application DC project in my NWDS 7.0. However, when I try to export the PAR file using Export --> PAR File -- > Next... I am unable to select any project from the list. The list appears blank with disabled Next & Finish buttons.
    I also noticed that in the portal DC application structure, there is a .sda file under /gen/default/deploy. Also there is no PAR folder under /gen/default/public.
    How do I include the source in the PAR file so that I can edit the same after migrating to EAR format ?
    Regards,
    Melwyn

    DC and PAR/EAR stuff are different formats, SC/DC is an archive type used by NWDI, if I got it right.
    How do I go about generating the PAR file (with source) ?
    In fact through including the seources while creating the PAR/EAR in NWDS, but: no need to do that, you can also depack SDA (rename it to zip). If you wanna just see the Java sources you will find them there, otherwise decompile as Vijay already sad.
    cheers

  • Where to find the source code for MenuTreeListPreviewLayoutController

    Dear All!
    I am desparately searching for the source code of the MenuTreeListPreviewLayoutController. I would like to
    implement a similar Layout Controller than the above mentioned one, but cannot find the code.
    Is anybody able to help me?
    Cheers and thanks in advance
    Ingo

    Hi Ingo,
    you should be able to find and decompile the class com.sapportals.wcm.rendering.layout.cm.MenuTreeListPreviewLayoutController in the JAR km.appl.ui.flex.control_core.jar. This JAR is located under ...<irj-root>\WEB-INF\portal\portalapps\com.sap.km.cm.ui.flex\private\lib
    Hope this helps,
    Robert
    PS: If you have problems to find it, gimme a mail and I'll send you the decompiled version.

  • How to Get Source Code of Standard ESS Component.

    Hi,
    I need to implement SAP Note 904107, in ESS ( Personal Info.) package.  However no tracks are maintained in NWDI for ESS.
    Please suggest me from where I can get Source Code for Standard SAP Web Dynpro component VcPerFamilyBEReview .
    I read in some blogs and its suggested to create Track in NWDI using ESS package which is deployed on server.  Please provide detail procedure, doc. and links for this.
    If any other approach is there to get sorce code please suggest.

    Hi,
    VcPerFamilyBEReview component is found in the DC sap.com/essbefam
    check these links to create track in NWDI
    [https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/e0b2b146-5776-2910-4a8f-9b3190eab060]
    [https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/7014086d-3fd9-2910-80bd-be3417810c6f]
    [https://www.sdn.sap.com/irj/sdn/wiki?path=/display/java/netweaver%2bdevelopment%2binfrastructure%2b(NWDI)]
    Regards,
    vv

  • Project setup - what's best for source code versioning?

    We're about to start developing a new portal and are wondering what would be the best directory structure. It's important to decide at the beginning because we're using CVS version management for our source code (we are currently using it for our ADF development).
    Are there any issues related to directory/package structure? With ADF, we had problems when we wanted jsps from one application to call those in another application. To get around that, we had to put all of our applications within the same jdeveloper "project".
    I'm keen to hear any suggestions - especially if you work in a multi-application environment with concurrent development etc.
    thanks,
    M

    Since I don't have a Canon, I don't know the specifics of how to ingest media for that camera. But FCE does have the ability to log & transfer AVCHD, as I have done this with a Sony HandiCam and my Lumix GH-1.
    The codec that FCE transcoded to, was AIC, Apple Intermediate Codec. FCE is 'fine' if you are not using 24p frame rates, as there are no 24p sequence options. (You can use 24p in a 25p timeline... but broadcast engineers will gnash their teeth on such botchery.)
    This may or may not be an issue.
    On the 'problem' of 'wyrd things happen when I whip pan my camera'... well, yeah... There are some industry standards about how fast objects should move across the field of view to avoid artifacts.
    The "whip pan", namely quickly pivoting the camera, will produce strange imaging. While the technology and image formation is different, so the artifacts are different, but even for 'film film' there are limits.
    One rule thumb I've run across is an object should take at least 5 seconds from one side of the screen to the other. Faster will result in artifacts, strobing, or in the case of digital cameras, 'rolling shutter' issues.
    The motto of the day is... "Know thy camera"...
    There may be filters to minimize or save the day if needed, but it is just better to shoot correctly in the first place...

  • After displaying result of report, my report goes back to source code edito

    Hello experts,
    I am currently having a big problem with my report. Here is the problem, after displaying the
    result(write), when I press BACK button it is not going back to my selection-screen which is the
    usual for reports. Now, what happens is that it goes back to the source code or worse, to the main menu of SAP.
    What I want to do is that when I press BACK button it should go to either selection-screen 500 or
    selection-screen 1500.
    Here's a rough flow of what is happening in my report:
    start report -> fetch records based on user input -> display results(not in ALV) ->
    after displaying report, click 'BACK' button -> it goes back to source code
    Now, here's what I want to do:
    start report -> fetch records based on user input -> display results(not in ALV) ->
    after displaying report, click 'BACK' button -> go back to either selection-screen 500 or 1500
    or call again the transaction of my report.
    Help would be greatly appreciated here.

    Hi guys,
    Thanks again for the quick replies.Here is the source code:
    REPORT zdealer_contacts NO STANDARD PAGE HEADING
                            LINE-COUNT 0
                            LINE-SIZE 255
                            MESSAGE-ID zz.
    TYPE-POOLS: slis.
    Data Dictionary Tables
    TABLES: zts0001,
            zsoemailid,
            kna1,
            zts_stpgeoloc.
    Includes
    *INCLUDE zun_globe_header.       " Globe Telecom Report Header
    Structures, internal tables and data declarations
    TYPES: BEGIN OF t_upload,
            kunnr LIKE zts0001-kunnr,
            zaddress(100),
            zcperson(30),
            zcnumber(18),
           END OF t_upload.
    TYPES: BEGIN OF t_error,
            kunnr LIKE zts0001-kunnr,
            zaddress(100),
            zcperson(30),
            zcnumber(18),
           END OF t_error.
    TYPES: BEGIN OF t_kna1,
            name1 LIKE kna1-name1,
           END OF t_kna1.
    TYPES: BEGIN OF t_zts0001,
            kunnr      LIKE zts0001-kunnr,
            cdseq      LIKE zts0001-cdseq,
            zaddress   LIKE zts0001-zaddress,
            zcperson   LIKE zts0001-zcperson,
            zcnumber   LIKE zts0001-zcnumber,
            zactivated LIKE zts0001-zactivated,
            name1      LIKE kna1-name1,
           END OF t_zts0001.
    DATA: it_upload  TYPE STANDARD TABLE OF t_upload  WITH HEADER LINE,
          it_error   TYPE STANDARD TABLE OF t_error   WITH HEADER LINE,
          it_kna1    TYPE STANDARD TABLE OF t_kna1    WITH HEADER LINE,
          it_zts0001 TYPE STANDARD TABLE OF t_zts0001 WITH HEADER LINE.
    DATA: it_ztstemp LIKE zts0001 OCCURS 100 WITH HEADER LINE,
          it_ztstemp_gloc LIKE zts_stpgeoloc OCCURS 100 WITH HEADER LINE.
    *AVH - start of insertion - 04/18/06
    FIELD-SYMBOLS: <fs_zts0001> LIKE LINE OF it_zts0001.
    **ALV Declarations
    DATA:   gt_fieldcat         TYPE slis_t_fieldcat_alv,
            g_repid             LIKE sy-repid,
            gs_layout           TYPE slis_layout_alv,
            gt_list_top_of_page TYPE slis_t_listheader,
            gt_events           TYPE slis_t_event WITH HEADER LINE,
            gt_print            TYPE slis_print_alv.
    CONSTANTS: gc_top  TYPE slis_formname  VALUE 'TOP_OF_PAGE',
               gc_topsum  TYPE slis_formname  VALUE 'TOP_OF_LIST',
               gc_ucomm  TYPE slis_formname  VALUE 'USER_COMMAND'.
    *AVH - end of insertion
    Variables
    DATA: v_kunnr LIKE zts0001-kunnr,
          v_title(100) TYPE c,
          gc_kunnr(06) TYPE c,
          v_compflag(1) TYPE c,
          v_flag(1).
    Selection Screen
    *AVH - start of modification - 06/27/06
    *if user is controller, selection-screen 500 will be called else,
    *selection-scren 1500 will be called.
    *selection-screen for controllers
    SELECTION-SCREEN BEGIN OF SCREEN 500.
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERS: pr_upld RADIOBUTTON GROUP grp2 USER-COMMAND ucomm1.
    SELECTION-SCREEN COMMENT 2(20) text-007 FOR FIELD pr_upld.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 03(15) text-a11 FOR FIELD p_flnme.
    PARAMETERS: p_flnme LIKE rlgrap-filename DEFAULT 'C:\'.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERS: pr_list1 RADIOBUTTON GROUP grp2.
    SELECTION-SCREEN COMMENT 2(7) text-003 FOR FIELD pr_list1.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN END OF BLOCK b1.
    SELECTION-SCREEN END OF SCREEN 500.
    *selection-screen for non-controllers.
    SELECTION-SCREEN BEGIN OF SCREEN 1500.
    SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-001.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(22) text-002 FOR FIELD p_dcode.
    PARAMETERS: p_dcode LIKE vbak-kunnr,
                p_name1 LIKE kna1-name1.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERS: pr_list2 RADIOBUTTON GROUP grp USER-COMMAND ucomm2.
    SELECTION-SCREEN COMMENT 2(7) text-003 FOR FIELD pr_list2.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERS: pr_add  RADIOBUTTON GROUP grp.
    SELECTION-SCREEN COMMENT 2(3) text-005 FOR FIELD pr_add.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERS: pr_edit RADIOBUTTON GROUP grp.
    SELECTION-SCREEN COMMENT 2(4) text-006 FOR FIELD pr_edit.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 03(20) text-a12 FOR FIELD p_code.
    PARAMETERS: p_code LIKE zts0001-cdseq.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN END OF BLOCK b2.
    SELECTION-SCREEN END OF SCREEN 1500.
    INITIALIZATION.
      SELECT SINGLE kunnr comp_flag INTO (gc_kunnr,v_compflag)
        FROM zsoemailid
       WHERE bname = sy-uname.
      IF sy-subrc <> 0.
        MESSAGE i000 WITH
             'You are not authorised to use this transaction'.
        LEAVE PROGRAM.
      ENDIF.
      IF v_compflag = 'X'.
        CALL SCREEN 500.
      ELSE.
        CALL SCREEN 1500.
      ENDIF.
    *AVH - end of modification
    AT SELECTION-SCREEN OUTPUT.
      PERFORM authority_check.
    added by derick 050125
    **-changed by weng rulloda 06012005
    *AVH - start of insertion - 05/22/06
    *no need to get value of kunnr from global memory
    *since gc_kunnr would be filled via the select statement below
    GET PARAMETER ID 'KUN' FIELD gc_kunnr.
    *AVH - end of insertion
      p_dcode = gc_kunnr.
    *AVH - start of insertion - 05/22/06
    **fetch the respective description of dealer based from p_dcode
    **and put in parameter p_name1
      SELECT SINGLE name1 FROM kna1
      INTO p_name1
      WHERE kunnr = p_dcode.
    *AVH - end of insertion
    *AVH - start of insertion - 05/22/06
    **selection-screen parameters is based if user is controller or not.
    **created new selection-screen conditions based from orig. code
      v_kunnr = gc_kunnr.
      LOOP AT SCREEN.
        IF screen-name      =  'P_DCODE'.
          screen-input      =  '0'.
          screen-output     =  '1'.
          MODIFY SCREEN.
        ELSEIF screen-name  =  'P_NAME1'.
          screen-input      =  '0'.
          screen-output     =  '1'.
          MODIFY SCREEN.
        ELSEIF screen-name  =  'P_CODE'.
          screen-input      =  '0'.
          MODIFY SCREEN.
        ENDIF.
      ENDLOOP.
      IF pr_list2 = 'X' OR pr_add = 'X'.
        LOOP AT SCREEN.
          IF screen-name   =  'P_CODE'.
            screen-input   =  '0'.
            MODIFY SCREEN.
          ENDIF.
        ENDLOOP.
      ELSEIF pr_edit = 'X'.
        LOOP AT SCREEN.
          IF screen-name   =  'P_CODE'.
            screen-input  =  '1'.
            MODIFY SCREEN.
          ENDIF.
        ENDLOOP.
      ENDIF.
      IF pr_list1   = 'X'.
        LOOP AT SCREEN.
          IF screen-name   = 'P_FLNME'.
            screen-input  = '0'.
            MODIFY SCREEN.
          ENDIF.
        ENDLOOP.
      ENDIF.
    *AVH - end of modification
    AT SELECTION-SCREEN.
    CHECK sy-ucomm = 'UCOMM1' OR sy-ucomm = 'UCOMM2'.
    *AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_flnme.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_flnme.
      CALL FUNCTION 'WS_FILENAME_GET'
           EXPORTING
                mask             = ',.,..'
                mode             = 'O'
                title            = 'File Selection'
           IMPORTING
                filename         = p_flnme
           EXCEPTIONS
                inv_winsys       = 1
                no_batch         = 2
                selection_cancel = 3
                selection_error  = 4
                OTHERS           = 5.
    *AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_code.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_code.
      DATA : BEGIN OF itab_list OCCURS 0,
              kunnr LIKE zts0001-kunnr,
              cdseq LIKE zts0001-cdseq,
              zaddress LIKE zts0001-zaddress,
              zcperson LIKE zts0001-zcperson,
              zcnumber LIKE zts0001-zcnumber,
             END OF itab_list.
      DATA: tab_fields LIKE dfies      OCCURS 0 WITH HEADER LINE,
            tab_valuetab(100) TYPE c   OCCURS 0 WITH HEADER LINE.
      DATA: tab_dynnr TYPE sy-dynnr.
      DATA: BEGIN OF tab_return_tab OCCURS 0.
              INCLUDE STRUCTURE ddshretval.
      DATA: END OF tab_return_tab.
      DATA: progname LIKE sy-repid.
      CLEAR: tab_valuetab[], tab_fields[].
      SELECT kunnr cdseq zaddress zcperson zcnumber
        INTO CORRESPONDING FIELDS OF TABLE itab_list
        FROM zts0001
        WHERE kunnr = v_kunnr.
      tab_dynnr = sy-dynnr.
      tab_fields-tabname = 'ZTS0001'.
      tab_fields-fieldname = 'KUNNR'.
      APPEND tab_fields.
      tab_dynnr = sy-dynnr.
      tab_fields-tabname = 'ZTS0001'.
      tab_fields-fieldname = 'CDSEQ'.
      APPEND tab_fields.
      tab_fields-tabname = 'ZTS0001'.
      tab_fields-fieldname = 'ZADDRESS'.
      APPEND tab_fields.
      tab_fields-tabname = 'ZTS0001'.
      tab_fields-fieldname = 'ZCPERSON'.
      APPEND tab_fields.
      tab_fields-tabname = 'ZTS0001'.
      tab_fields-fieldname = 'ZCNUMBER'.
      APPEND tab_fields.
      LOOP AT itab_list.
        tab_valuetab = itab_list-kunnr.
        APPEND tab_valuetab.
        tab_valuetab = itab_list-cdseq.
        APPEND tab_valuetab.
        tab_valuetab = itab_list-zaddress.
        APPEND tab_valuetab.
        tab_valuetab = itab_list-zcperson.
        APPEND tab_valuetab.
        tab_valuetab = itab_list-zcnumber.
        APPEND tab_valuetab.
      ENDLOOP.
      progname = sy-repid.
      CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
           EXPORTING
                retfield    = 'CDSEQ'
                dynpprog    = progname
                dynpnr      = '1000'
                dynprofield = 'P_CODE'
           TABLES
                value_tab   = tab_valuetab
                field_tab   = tab_fields
                return_tab  = tab_return_tab
           EXCEPTIONS
                OTHERS      = 0.
    START-OF-SELECTION.
      IF pr_edit = 'X' AND p_code IS INITIAL.
        MESSAGE i008 WITH 'Please specify a ship-to code.'.
         LEAVE TO TRANSACTION 'ZDCONTACT'.
      ENDIF.
      PERFORM get_data.
      IF pr_upld = 'X'.
        PERFORM upload_file.
      ELSEIF pr_add = 'X'.
        PERFORM add_record.
      ELSEIF pr_edit = 'X'.
        PERFORM edit_record.
      ELSEIF pr_list1 = 'X' OR pr_list2 = 'X'.
        PERFORM display_alv.
      ENDIF.
    END-OF-SELECTION.
    based from ALV PF-STATUS
      IF sy-ucomm = '&F03'.                  "BACK
       LEAVE TO TRANSACTION 'ZDCONTACT'.
      ELSEIF sy-ucomm = '&F15'.              "EXIT
       LEAVE TO TRANSACTION 'ZDCONTACT'.
      ELSEIF sy-ucomm = '&F12'.              "CANCEL
       LEAVE TO TRANSACTION 'ZDCONTACT'.
      ENDIF.
    *&      Form  authority_check
    FORM authority_check.
      CALL FUNCTION 'AUTHORITY_CHECK'
           EXPORTING
                field1              = 'TCD' "MDM
                object              = 'S_TCODE'
                user                = sy-uname
                value1              = 'ZMEN'
               VALUE3              = '01' MDM
           EXCEPTIONS
                user_dont_exist     = 1
                user_is_authorized  = 2
                user_not_authorized = 3
                user_is_locked      = 4
                OTHERS              = 5.
      IF sy-subrc NE 2.
    **-added by weng 04/28/2006
    **-if user is not authorized to use dealer portal check if he is
    **-  authorized to use the tcode ZDCONTACT
        CALL FUNCTION 'AUTHORITY_CHECK'
             EXPORTING
                  field1              = 'TCD' "MDM
                  object              = 'S_TCODE'
                  user                = sy-uname
                  value1              = 'ZDCONTACT'
               VALUE3              = '01' MDM
             EXCEPTIONS
                  user_dont_exist     = 1
                  user_is_authorized  = 2
                  user_not_authorized = 3
                  user_is_locked      = 4
                  OTHERS              = 5.
    **-weng
        IF sy-subrc NE 2.
          MESSAGE i000 WITH
            'You are not authorised to use this transaction'.
          LEAVE PROGRAM.
        ENDIF.
      ENDIF.
    ENDFORM.                    " AUTHORITY_CHECK
    *&      Form  get_data
    FORM get_data.
    *AVH - start of insertion - 04/19/06
    **records selected from table zts0001 that has been marked as
    **activated will be fetched otherwise, ignore.
      IF v_kunnr IS INITIAL.
        SELECT * INTO CORRESPONDING FIELDS OF TABLE it_zts0001
          FROM zts0001.
      ELSEIF v_compflag = 'X'.
        SELECT * INTO CORRESPONDING FIELDS OF TABLE it_zts0001
           FROM zts0001.
      ELSE.
        SELECT * INTO CORRESPONDING FIELDS OF TABLE it_zts0001
           FROM zts0001
           WHERE kunnr = v_kunnr.
      ENDIF.
    *AVH - start of insertion - 05/24/06
    **fetch name based from kunnr and put in itab
      LOOP AT it_zts0001 ASSIGNING <fs_zts0001>.
        SELECT SINGLE name1 FROM kna1
        INTO <fs_zts0001>-name1
        WHERE kunnr = <fs_zts0001>-kunnr.
      ENDLOOP.
    *AVH - end of insertion
    ENDFORM.                    " get_data
    *&      Form  Upload_file
    FORM upload_file.
      DATA: lv_seq(5) TYPE n,
            lv_ctr(5) TYPE c,
            lv_kunnr LIKE it_upload-kunnr.
      v_title = 'Upload from File'.
      CALL FUNCTION 'WS_UPLOAD'
           EXPORTING
                filename = p_flnme
                filetype = 'DAT'
           TABLES
                data_tab = it_upload
           EXCEPTIONS
                OTHERS   = 1.
      IF sy-subrc <> 0.
        MESSAGE i008 WITH 'File does not exist.'.
        IF v_compflag IS INITIAL.
          LEAVE TO TRANSACTION 'ZDCONTACT'.
        ELSE.
          LEAVE TO TRANSACTION 'ZDCONTACT'.
        ENDIF.
      ENDIF.
      CHECK sy-subrc EQ 0.
      DELETE it_upload
        WHERE zaddress EQ space
          AND zcperson EQ space
          AND zcnumber EQ space.
      SORT it_zts0001 BY kunnr ASCENDING cdseq DESCENDING.
      SORT it_upload BY kunnr ASCENDING.
      LOOP AT it_upload.
        lv_kunnr = it_upload-kunnr.
        AT NEW kunnr.
    AVH - start of insertion - 06/30/06
          SELECT SINGLE kunnr FROM zsoemailid
          INTO lv_kunnr
          WHERE kunnr = it_upload-kunnr.
    if it_upload-kunnr is not found in table ZSOEMAILID, it will
    not be included in the upload.
          IF sy-subrc <> 0.
            DELETE it_upload.
            CLEAR it_upload.
            CONTINUE.
          ENDIF.
    AVH - end of insertion
          READ TABLE it_zts0001 WITH KEY kunnr = lv_kunnr.
          IF sy-subrc EQ 0.
            lv_seq = it_zts0001-cdseq.
          ELSE.
            CLEAR lv_seq.
          ENDIF.
        ENDAT.
        IF it_upload-zaddress IS INITIAL.
          MOVE-CORRESPONDING it_upload TO it_error.
          APPEND it_error.
          CLEAR it_error.
        ELSE.
          REPLACE '"' WITH '' INTO it_upload-zaddress.
          REPLACE '"' WITH '' INTO it_upload-zaddress.
          REPLACE '"' WITH '' INTO it_upload-zcperson.
          REPLACE '"' WITH '' INTO it_upload-zcperson.
          CONDENSE it_upload-zaddress.
          CONDENSE it_upload-zcperson
          ADD 1 TO lv_seq.
          MOVE: it_upload-kunnr    TO it_ztstemp-kunnr,
                lv_seq             TO it_ztstemp-cdseq,
                it_upload-zaddress TO it_ztstemp-zaddress,
                it_upload-zcperson TO it_ztstemp-zcperson,
                it_upload-zcnumber TO it_ztstemp-zcnumber,
                'X'                TO it_ztstemp-zactivated,
                sy-uname           TO it_ztstemp-zcreated_by,
                sy-datum           TO it_ztstemp-zchanged_date.
          MOVE-CORRESPONDING it_ztstemp TO it_ztstemp_gloc.
          APPEND: it_ztstemp, it_ztstemp_gloc.
          CLEAR: it_ztstemp, it_ztstemp_gloc.
        ENDIF.
      ENDLOOP.
      IF NOT it_ztstemp[] IS INITIAL.
        INSERT zts0001 FROM TABLE it_ztstemp.
        INSERT zts_stpgeoloc FROM TABLE it_ztstemp_gloc.
        WRITE:/ 'List of Records Uploaded.' COLOR 1 INTENSIFIED ON.
        FORMAT COLOR 1 INTENSIFIED OFF.
        WRITE:/(020) 'Dealer Code' CENTERED,
               (007) 'Code'         CENTERED,
               (100) 'Address',
               (030) 'Contact Person' CENTERED,
               (018) 'Contact Number' CENTERED.
        FORMAT COLOR OFF.
        WRITE:/(179) sy-uline.
        DESCRIBE TABLE it_ztstemp LINES lv_ctr.
        SORT it_ztstemp BY kunnr cdseq.
        LOOP AT it_ztstemp.
          WRITE:/(020) it_ztstemp-kunnr,
                 (007) it_ztstemp-cdseq,
                 (100) it_ztstemp-zaddress,
                 (030) it_ztstemp-zcperson,
                 (018) it_ztstemp-zcnumber.
        ENDLOOP.
        SKIP 1.
        WRITE:/ 'TOTAL :', lv_ctr.
      ENDIF.
      IF NOT it_error[] IS INITIAL.
        SKIP 2.
        FORMAT COLOR 1 INTENSIFIED OFF.
        WRITE:/(020) 'Dealer Code' CENTERED,
               (030) 'Contact Person' CENTERED,
               (018) 'Contact Number' CENTERED.
        FORMAT COLOR OFF.
        WRITE:/(070) sy-uline.
        DESCRIBE TABLE it_error LINES lv_ctr.
        SORT it_error BY kunnr zcperson.
        LOOP AT it_error.
          WRITE:/ 'With No Address.' COLOR 6 INTENSIFIED ON.
          WRITE:/(020) it_error-kunnr,
                 (030) it_error-zcperson,
                 (018) it_error-zcnumber.
        ENDLOOP.
        SKIP 1.
        WRITE:/ 'TOTAL :', lv_ctr.
      ENDIF.
    ENDFORM.                    " Upload_file
    *&      Form  add_record
    FORM add_record.
      v_title = ''.
      IF NOT v_kunnr IS INITIAL.
        SUBMIT zdealer_contacts_add_edit AND RETURN
                                         WITH p_kunnr = v_kunnr
                                         WITH p_name1 = p_name1  "AVH
                                         WITH p_cdseq = space
                                         WITH p_flag = 'A'
                                         WITH p_addr = it_zts0001-zaddress
                                         WITH p_pers = it_zts0001-zcperson
                                         WITH p_numb = it_zts0001-zcnumber
                                         VIA SELECTION-SCREEN.
      ENDIF.
        LEAVE TO TRANSACTION 'ZDCONTACT'.
    ENDFORM.                    " add_record
    *&      Form  edit_record
    FORM edit_record.
      v_title = ''.
      READ TABLE it_zts0001 WITH KEY kunnr = v_kunnr
                                     cdseq = p_code.
      IF sy-subrc EQ 0.
        SUBMIT zdealer_contacts_add_edit AND RETURN
                                         WITH p_kunnr = v_kunnr
                                         WITH p_name1 = p_name1  "AVH
                                         WITH p_cdseq = p_code
                                         WITH p_flag = 'E'
                                         WITH p_addr = it_zts0001-zaddress
                                         WITH p_pers = it_zts0001-zcperson
                                         WITH p_numb = it_zts0001-zcnumber
                                         WITH v_controller = v_compflag
                                         VIA SELECTION-SCREEN.
      ELSE.
        MESSAGE i008 WITH 'No record found.'.
        CALL TRANSACTION 'ZDCONTACT'.
      ENDIF.
        LEAVE TO TRANSACTION 'ZDCONTACT'.
    ENDFORM.                    " edit_record
    *&      Form  display_records
    *FORM display_records.
    IF NOT it_zts0001[] IS INITIAL.
       v_title = 'List of Dealer Contacts'.
       FORMAT COLOR 1 INTENSIFIED OFF.
       WRITE:/(020) 'Customer Number' CENTERED,
              (007) 'Code' CENTERED,
              (100) 'Address',
              (030) 'Contact Person' CENTERED,
              (018) 'Contact Number' CENTERED.
       FORMAT COLOR OFF.
       WRITE:/(179) sy-uline.
       SORT it_zts0001 BY kunnr cdseq.
       LOOP AT it_zts0001.
         WRITE:/(020) it_zts0001-kunnr,
                (007) it_zts0001-cdseq,
                (100) it_zts0001-zaddress,
                (030) it_zts0001-zcperson,
                (018) it_zts0001-zcnumber.
       ENDLOOP.
    ELSE.
       MESSAGE i008 WITH 'No records to display.'.
    ENDIF.
    *ENDFORM.                    " display_records
    *&      Form  display_alv
    FORM display_alv.
      SORT it_zts0001 BY kunnr cdseq.
      PERFORM f_build_layout USING gs_layout.
      PERFORM f_init_fieldcat USING gt_fieldcat[].
      PERFORM f_init_events USING 'BACK' gt_events[].
      g_repid = sy-repid.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
           EXPORTING
                i_callback_program      = g_repid
                i_callback_top_of_page  = 'TOP_OF_PAGE'
                i_callback_user_command = 'USER_COMMAND'
                is_layout               = gs_layout
                it_fieldcat             = gt_fieldcat[]
                it_events               = gt_events[]
                i_save                  = 'X'
               it_sort                 = gt_sort
           TABLES
                t_outtab                = it_zts0001[]
           EXCEPTIONS
                program_error           = 1
                OTHERS                  = 2.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    ENDFORM.                    " DISPLAY_ALV
          FORM top_of_page                                          *
    FORM top_of_page.
    *ALV Header declarations
      DATA: t_header TYPE slis_t_listheader,
            wa_header TYPE slis_listheader,
            t_line LIKE wa_header-info,
            lv_title(60),
            lv_user(60),
            lv_date(10),
            lv_time(10),
            lv_time_n_date(30),
            lv_dcode_n_name(150),
            lv_dlr_n_desc(100),
            ld_lines TYPE i,
            ld_linesc(10) TYPE c.
    Title
      CLEAR: lv_title, wa_header.
      MOVE sy-title TO lv_title.
      wa_header-typ  = 'H'.
      wa_header-info = lv_title.
      APPEND wa_header TO t_header.
      CLEAR wa_header.
    User
      CLEAR: lv_user, wa_header.
      CONCATENATE: 'Generated by:' sy-uname
                   INTO lv_user SEPARATED BY space.
      wa_header-typ  =  'A'.
      wa_header-info =  lv_user.
      APPEND wa_header TO t_header.
      CLEAR wa_header.
    *Date and time
      CLEAR: lv_date, lv_time.
      WRITE: sy-datum TO lv_date MM/DD/YYYY,
             sy-uzeit TO lv_time USING EDIT MASK '__:__:__'.
      CONCATENATE: 'Generated on:' lv_date lv_time
        INTO lv_time_n_date SEPARATED BY space.
      wa_header-typ  = 'A'.
      wa_header-info =  lv_time_n_date.
      APPEND wa_header TO t_header.
      CLEAR wa_header.
      IF NOT v_kunnr IS INITIAL AND v_compflag IS INITIAL.
    *Dealer code and name
        CONCATENATE: 'Dealer:' p_dcode p_name1
          INTO lv_dcode_n_name SEPARATED BY space.
        wa_header-typ  =  'A'.
        wa_header-info =  lv_dcode_n_name.
        APPEND wa_header TO t_header.
        CLEAR wa_header.
      ENDIF.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
           EXPORTING
                it_list_commentary = t_header.
    ENDFORM.                    " TOP_OF_PAGE
          FORM f_build_layout                                           *
    -->  %LAYOUT                                                       *
    FORM f_build_layout USING %layout TYPE slis_layout_alv.
      %layout-zebra             = 'X'.
      %layout-colwidth_optimize = 'X'.
    ENDFORM.                    " F_BUILD_LAYOUT
          FORM f_init_fieldcat                                          *
    -->  %FIELDCAT                                                     *
    FORM f_init_fieldcat USING %fieldcat TYPE slis_t_fieldcat_alv.
      DATA: lc_fieldcat TYPE slis_fieldcat_alv.
      CLEAR lc_fieldcat.
      DEFINE m_field.
        add 1 to lc_fieldcat-col_pos.
        lc_fieldcat-fieldname   = &1.
        lc_fieldcat-outputlen   = &2.
        lc_fieldcat-seltext_l   = &3.
        lc_fieldcat-do_sum      = &4.
        lc_fieldcat-inttype     = &5.
        lc_fieldcat-hotspot     = &6.
        lc_fieldcat-fix_column  = &7.
        lc_fieldcat-ddictxt     = 'L'.
        lc_fieldcat-no_zero     = 'X'.
        append lc_fieldcat to %fieldcat.
      END-OF-DEFINITION.
      IF v_kunnr IS INITIAL.
        m_field 'KUNNR' '5' 'Dealer Code'            ''  ''  '' ''.
      ENDIF.
      IF v_compflag = 'X'.
        m_field 'KUNNR' '5' 'Dealer Code'        ''  ''  '' ''.
      ENDIF.
      IF v_compflag = 'X'.
        m_field 'NAME1'    '40' 'Dealer Name'        ''  ''  '' ''.
      ENDIF.
      m_field 'CDSEQ' '05' 'Ship-To Code'            ''  ''  '' ''.
      m_field 'ZADDRESS' '100' 'Address'             ''  ''  '' ''.
      m_field 'ZCPERSON' '30' 'Contact Person'       ''  ''  '' ''.
      m_field 'ZCNUMBER' '18' 'Contact Number'       ''  ''  '' ''.
      IF v_kunnr IS INITIAL.
        m_field 'NAME1'    '40' 'Dealer Name'        ''  ''  '' ''.
      ENDIF.
      m_field 'ZACTIVATED' '1' 'Activated'           ''  ''  '' ''.
    ENDFORM.                    " f_init_fieldcat
          FORM f_init_events                                            *
    -->  P_TYPE                                                        *
    -->  %EVENTS                                                       *
    FORM f_init_events USING p_type CHANGING %events TYPE slis_t_event.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
           EXPORTING
                i_list_type     = 0
           IMPORTING
                et_events       = %events
           EXCEPTIONS
                list_type_wrong = 1
                OTHERS          = 2.
      IF sy-subrc = 0.
        PERFORM f_build_events USING: slis_ev_user_command.
       IF p_type = 'TOP'.
         PERFORM f_build_events USING: gc_top.
       ELSEIF p_type = 'SUM'.
         PERFORM f_build_events_sum USING: gc_topsum.
       ENDIF.
      ELSE.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    ENDFORM.                    " F_INIT_EVENTS
          FORM user_command                                             *
    -->  P_UCOMM                                                       *
    -->  P_SELFIELD                                                    *
    FORM user_command USING p_ucomm LIKE sy-ucomm
                            p_selfield TYPE slis_selfield.
      CASE p_ucomm.
        WHEN 'E'.
          CALL SELECTION-SCREEN 500.
      ENDCASE.
    ENDFORM.
          FORM f_build_events                                           *
    -->  %EVENT                                                        *
    FORM f_build_events USING %event.
      READ TABLE gt_events WITH KEY name = %event.
      IF sy-subrc = 0.
        MOVE: %event TO gt_events-form.
        MOVE 'USER_COMMAND' TO gt_events-form.
        MODIFY gt_events INDEX sy-tabix.
      ENDIF.
    ENDFORM.                    " F_BUILD_EVENTS

Maybe you are looking for

  • IDOC TO JDBC , mappinng source segment to target segment

    Hi Experts, I need your guidance on the following scenario IDOC to JDBC (DB2)  Source side has one header and multiple line items to be map to DB2  tables (one for header and one for line item) I have searched through web and forum for some step by s

  • Triggers in ABAP

    Hello guys, our customer requests functionality synchronizing passwords over all the systems within their SAP solution (i.e. CRM, BiW, R/3). Please do not try to explain me it is not recomended by SAP (there is a lot of reasons why not doing so), I k

  • Text Variable (offsets)

    Hi, Please I will like to confirm if it is possible to make use of a variable offset in a text variable. How can I do this from the query designer ? I have already restricted the charateristic with a variable and offset, but I'm not sure if this will

  • How do I get back the free apps?

    I am trying to sync ten new iPads.  Keynote, pages, etc. was on them for free.  When I configured with other apps, they disappeared.  How do I get them back?

  • My frames are gone upon upload- why??

    First off- I am a 3 year newb at this stuff, so my mistakes are really basic and stupid.. I know, I know- RTFM, yeah? So, my template is gorgeous. I've created all my pages from it. It ALL looks perfect in my browser. My desktop files and ftp files m