Events in PSCD module for correspondance

Hi experts,
I am working on PSCD module and new to it. I need to write code to get additiona;l data from DFKKOP and DFKKKO table. I am using FMCAM2 AND FPCOPARA transactions for correspondance and printing respectively.
FMCAM2  - generate invoice
FPCOPARA - Correspondance printing
The events which I know that work in this are FFK_SAMPLE_706 and FF_SAMPLE_707. But when executing these transactions they events are not triggered.
It would be great if any one can help me on this and on how ot find the events releated to the transactions.
Do we have any documentation for the correspodance..on how it works..
Thanks a lot.
Govind Parmar

solved my self.

Similar Messages

  • Matrix certification for SAP PSCD module

    Hello,
    I would like to know if the SAP PSCD module is already certified to run on SLES (SUSE Linux Enterprise Server)?
    Do you have a matrix of modules certified to run on SLES?
    Best Regards

    Dear Francisco Martinez,
    you should have a look to the <a href="http://service.sap.com/pam">Product Availability Matrix</a> at the SAP Service Marketplace. On the right pane, navigate to <i>SAP Industry-Specific Components</i> and then <i>SAP PUBLIC SECTOR PSCD</i>.
    For example, when choosing <i>SAP PUBLIC SECTOR PSCD 4.72</i>, you will see, that PSCD is an addon for <i>SAP R/3 ENTERPRISE</i>. You now have to check, on which platforms <i>SAP R/3 ENTERPRISE</i> is certified.
    On the right pane, navigate to <i>SAP Application Components</i> and then <i>SAP R/3 ENTERPRISE</i>. Choose your SAP R/3 Enterprise release and check on which database platforms it is released (If database is certified, the Application Server is certified as well. Because of this, you always have to check for the database platforms!).
    Choose your database and check which operating systems are certified.
    Best Regards
    Hannes

  • Dispatchig event from one module and listen it in an other module

    Hi,
    I would like to know if it's possible to dispatch event from module for example "M1" and listen this event to call the corresponding command but in an other module "M2". Knowing that M1 produces an swf "SWF1" and M2 produces an other swf "SWF2". For example :
    In the view of a module M1, I should have this statement : CairngormEventDispatcher.getInstance().dispatchEvent(new MyClassEvent(parm));
    know in module "M2" I would like to know how to recover this event and then executing command corresponding to this event.
    If it's not clear enough I can explain it again.
    I need really your help for the rest of my development.
    Thank you in advance. :)
    Ziad.

    Hi Ziad,
    Sorry, but this forum is for discussing the future of cairngorm, not how to use it today.
    I suggest you post your question on the FlexCoders mailing list or on the Cairngorm Documentation Group :
    http://tech.groups.yahoo.com/group/cairngorm-documentation/
    Thanks ;)

  • Function module for F4 help download

    HI Experts
    What is the function module for F4 help download.
    Thanks in advance

    Hi,
      Function module is F4IF_FIELD_VALUE_REQUEST.
    Use the Function moduel like this in this i create screen 100 by using se51.
    REPORT zcl_f4_help.
    TYPES: BEGIN OF values,
             carrid TYPE spfli-carrid,
             connid TYPE spfli-connid,
           END OF values.
    DATA: carrier(3) TYPE c,
          connection(4) TYPE c.
    DATA: progname TYPE sy-repid,
          dynnum   TYPE sy-dynnr,
          dynpro_values TYPE TABLE OF dynpread,
          field_value LIKE LINE OF dynpro_values,
          values_tab TYPE TABLE OF values.
    CALL SCREEN 100.
    MODULE init OUTPUT.
      progname = sy-repid.
      dynnum   = sy-dynnr.
      CLEAR: field_value, dynpro_values.
      field_value-fieldname = 'CARRIER'.
      APPEND field_value TO dynpro_values.
    ENDMODULE.
    MODULE cancel INPUT.
      LEAVE PROGRAM.
    ENDMODULE.
    MODULE value_carrier INPUT.
      CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
           EXPORTING
                tabname     = 'DEMOF4HELP'
                fieldname   = 'CARRIER1'
                dynpprog    = progname
                dynpnr      = dynnum
                dynprofield = 'CARRIER'.
    ENDMODULE.
    MODULE value_connection INPUT.
      CALL FUNCTION 'DYNP_VALUES_READ'
           EXPORTING
                dyname             = progname
                dynumb             = dynnum
                translate_to_upper = 'X'
           TABLES
                dynpfields         = dynpro_values.
      READ TABLE dynpro_values INDEX 1 INTO field_value.
      SELECT  carrid connid
        FROM  spfli
        INTO  CORRESPONDING FIELDS OF TABLE values_tab
        WHERE carrid = field_value-fieldvalue.
      CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
           EXPORTING
                retfield    = 'CONNID'
                dynpprog    = progname
                dynpnr      = dynnum
                dynprofield = 'CONNECTION'
                value_org   = 'S'
           TABLES
                value_tab   = values_tab.
    ENDMODULE.
    you use this exaple  code.
    Plz Reward if Help,
    Mahi.

  • Function Module for search help Exit

    How to create a function Module for search help exits?
    please explain in details with step by step process.

    Hi,
    How to create a function Module for search help exits?
    function module for search help F4IF_SHLP_EXIT_EXAMPLE
    dynamic search help use 'F4IF_INT_TABLE_VALUE_REQUEST'
    please check out the link below it will help you
    A repository object maintained in the ABAP Dictionary. It supplies input fields on Dynpros with single- or multi-column input helps. Search helps can be linked in the Dictionary with components from structures, data elements, and check tables. A search help enables you to search for entry values with assigned data, without you having to know the exact spelling of the value.
    http://help.sap.com/saphelp_46c/helpdata/EN/cf/21ee52446011d189700000e8322d00/content.htm
    please explain in details with step by step process.
    create a search help exit:
    1. create an fm with this interface:
    *" TABLES
    *" SHLP_TAB TYPE SHLP_DESCR_TAB_T
    *" RECORD_TAB STRUCTURE SEAHLPRES
    *" CHANGING
    *" VALUE(SHLP) TYPE SHLP_DESCR_T
    *" VALUE(CALLCONTROL) LIKE DDSHF4CTRL STRUCTURE DDSHF4CTRL
    put this logic in it:
    Delete duplicate filter logic.
    This logic only needs to apply at the 'DISP' event - which is just
    before the hit list is displayed
    if callcontrol-step = 'DISP'.
    delete adjacent duplicates from record_tab.
    endif.
    2. edit your search help in se11 and enter the name of the above search help exit fm
    check this sample code..for dynamic search help
    REPORT  ZTEST_F4HELP                              .
    *---Report with selection screen and to display the list of
    possible entries for field 'B' as per the value in field 'A'.
    parameters: p_vbeln type vbak-vbeln,
                p_posnr type vbap-posnr.
    at selection-screen on value-request for p_posnr.
      data: begin of help_item occurs 0,
              posnr type vbap-posnr,
              matnr type vbap-matnr,
              arktx type vbap-arktx,
            end of help_item.
      data: dynfields type table of dynpread with header line.
      dynfields-fieldname = 'P_VBELN'.
      append dynfields.
      call function 'DYNP_VALUES_READ'
           exporting
                dyname               = sy-cprog
                dynumb               = sy-dynnr
                translate_to_upper   = 'X'
           tables
                dynpfields           = dynfields
           exceptions
                invalid_abapworkarea = 1
                invalid_dynprofield  = 2
                invalid_dynproname   = 3
                invalid_dynpronummer = 4
                invalid_request      = 5
                no_fielddescription  = 6
                invalid_parameter    = 7
                undefind_error       = 8
                double_conversion    = 9
                stepl_not_found      = 10
                others               = 11.
      read table dynfields with key fieldname = 'P_VBELN'.
      p_vbeln = dynfields-fieldvalue.
      call function 'CONVERSION_EXIT_ALPHA_INPUT'
           exporting
                input  = p_vbeln
           importing
                output = p_vbeln.
      select posnr matnr arktx into table help_item
                     from vbap
                          where vbeln = p_vbeln.
      call function 'F4IF_INT_TABLE_VALUE_REQUEST'
           exporting
                retfield    = 'POSNR'
                dynprofield = 'P_POSNR'
                dynpprog    = sy-cprog
                dynpnr      = sy-dynnr
                value_org   = 'S'
           tables
                value_tab   = help_item.
    also check this link it will help you
    /message/3854825#3854825 [original link is broken]
    *********please reward points if the information is helpful to you*************

  • Any function module for  validation

    Hi,
    I am new to ABAP.
    Can any body tell me whether there is any built in function module for
    field validation.
    Thanks in advance
    Archana

    Hi,
    u can validate the field values using at selectiion-screen
    •     AT SELECTION-SCREEN
    When user enters the values in the fields of selection screen and clicks on execute button, this event gets triggered. This event is basically for checking the values entered by the user for the fields of the selection screen i.e., data validity checking. This event is for entire selection screen.  For example:
    You are accepting carrid, connid, fldate from user and you don’t want to proceed if user enters no value for carrid and fldate.  Using AT SELECTION-SCREEN can do this.
    Select-options: carrid1 for sflight-carrid,
              Connid1 for sflight-connid,
              F1date1 for sflight-f1date.
    AT SELECTION-SCREEN.
    If carrid1-low ne ‘  ’ and fldate1-low = ‘  ’.
        Error message.
    Endif.
    In this case, if both the fields are entered blank, then the user gets error message.
    Basically, this event is for many fields on selection screen.  Usually, it is for the fields which are logically related.
    •     AT SELECTION-SCREEN ON  <field>
    When you want to check for specific value of a field. For example, carrid should be in the range of ‘LH’ and ‘SQ’. This can be done in this event.  Basically, this event is for checking individual fields. You can have many AT selection-screen events in your program (i.e., for each field specified in the Select-Options).
    Select-Options carrid1 for sflight-carrid.
    AT SELECTION-SCREEN.
    If carrid1-low ne ‘LH’ and carrid1-high ne ‘SQ’.
       Error message.
    Endif.
    Here the system will not proceed on entering wrong values.
    Regards,
    Sruthi

  • Generic function module for delta - which FM ?

    Hi all,
    I want to create a custom generic datasource in R3 which uses a function module for delta extraction. This is straight forward for full extract (copy FM RSAX_BIW_GET_DATA_SIMPLE - I already did this and have a full extraction working to BW). However I need to extract delta - and the above function module does not have example code for that (I have seen some forum posts that it 'can' be used - but this looks like a pseudo get around where the delta field name is passed in I_T_SELECT).
    FM RSVD_BW_GET_DELTA_DATA seems to be an example code of a FM which can allow delta (i.e. manually codes how to fill date/time stamp information). However when I code this and try test in RSA3 it seems to try to populate the delta selection field before calling my function module! I need it to call my function and allow the function to specifiy the date criteria.
    Can anyone help with an example of how this should best  be done ?
    Or can it only be done in a pseudo form using 'RSAX_BIW_GET_DATA_SIMPLE' example FM.
    Note: I have setup the RSO2 datasource to allow delta.
    Also - I have spent several hours searching the forum - but please answer with a link if you think it does answer exactly this problem.
    Thanks for any help
    Martin

    Hi again,
    Have had a few requests for the code I used - I created a new custom function copied from 'RSAX_BIW_GET_DATA_SIMPLE'. AEDAT has been set as the delta date for this data source in transaction RSO2.
    Main sample code is -
    1. Code to receive selection criteria and store in internal ranges -
    FUNCTION zbw_sodetail_get_detail.                                   
    ""Global interface:                                               
    *"   IMPORTING                                                  
    *"       VALUE(I_REQUNR) TYPE  SRSC_S_IF_SIMPLE-REQUNR        
    *"       VALUE(I_DSOURCE) TYPE  SRSC_S_IF_SIMPLE-DSOURCE      
    *"       VALUE(I_MAXSIZE) TYPE  SRSC_S_IF_SIMPLE-MAXSIZE      
    *"       VALUE(I_INITFLAG) TYPE  SRSC_S_IF_SIMPLE-INITFLAG    
    *"       VALUE(I_READ_ONLY) TYPE  SRSC_S_IF_SIMPLE-READONLY   
    *"       TABLES                                                     
    *"              I_T_SELECT TYPE  SRSC_S_IF_SIMPLE-T_SELECT OPTIONAL 
    *"              I_T_FIELDS TYPE  SRSC_S_IF_SIMPLE-T_FIELDS OPTIONAL 
    *"              E_T_DATA STRUCTURE  ZBW_SODETAIL OPTIONAL           
    *--- Sales order item create date                                      
       LOOP AT i_t_select INTO l_s_select WHERE fieldnm = 'ERDAT'.         
          MOVE-CORRESPONDING l_s_select TO r_erdat.                        
          APPEND r_erdat.                                                  
       ENDLOOP.                                                                               
    *--- Sales order item change date - DELTA only - auto filled before    
       this function is called.                                          
       C (Initialise Delta) - Low = blank, High = today - safety limit   
       D (Delta) - low = , High =   .       *from roosgendlm             
       LOOP AT i_t_select INTO l_s_select WHERE fieldnm = 'AEDAT'.         
          MOVE-CORRESPONDING l_s_select TO r_aedat.                        
          APPEND r_aedat.                                                  
       ENDLOOP.                                                                               
    2. Code to use selection criteria to get initial or delta. Note that for delta the delta date field to be used is automatically populated with the date of the last delta run (from table roosgendlm) -
       SELECT VBAK~KNUMV
              VBAPVBELN VBAPPOSNR VBAPMATNR VBAPARKTX VBAP~SPART
              VBAPWERKS VBAPERDAT VBAPAEDAT VBAPNETWR VBAP~WAERK
              VBAPABGRU VBAPZPROMISE VBAP~CUOBJ
              VBEP~EDATU
          INTO CORRESPONDING FIELDS OF TABLE ZBW_SODETAIL_ITAB
          FROM VBAK JOIN VBAP ON VBAKVBELN = VBAPVBELN
                    JOIN VBEP ON VBAPVBELN = VBEPVBELN
                             AND VBAPPOSNR = VBEPPOSNR
       WHERE VBAP~VBELN IN R_VBELN        "Order number
         AND VBAP~POSNR IN R_POSNR        "Order item number
         AND VBAP~ERDAT IN R_ERDAT        "Order item date created
        AND ( VBAP~ERDAT IN R_AEDAT OR   "Created date in      Delta range
                  VBAP~AEDAT IN R_AEDAT OR   "Order item change    Delta range
                  VBAK~AEDAT IN R_AEDAT ).   "Order header change  Delta range
    Note that if the data source is called in initial or full extract mode the delta change date (aedat) will automatically be blank.
    I have been using this successfully.
    I hope this helps
    Martin.

  • Function module for assigned wage types

    Hi experts,
    We need wage type wise count and sum of the amount for each wage type defined in infotype '0008' for the given from and to dates. Is there any function module available for the same.
    Please suggest.
    Regards,
    Kaustubh Kabre.

    Hi,
    <li>I do not look for function module for this case as i know that we can or have to read wage types and corresponding amount in the program. LDB PNP should be given in program attributes.
    REPORT RPABAP06.
    TABLES:PERNR.
    INFOTYPES:0008.
    DATA: BEGIN OF WAGETYPES,
       LGA LIKE P0008-LGA01,
       BET LIKE P0008-BET01,
       ANZ LIKE P0008-ANZ01,
       EIN LIKE P0008-EIN01,
       OPK LIKE P0008-OPK01,
      END OF WAGETYPES.
    DATA:total type P0008-BET01.
    GET PERNR.
    RP_PROVIDE_FROM_LAST P0008 SPACE PN-BEGDA PN-ENDDA.
    DO 20 TIMES VARYING WAGETYPES-LGA FROM P0008-LGA01 NEXT P0008-LGA02
                VARYING WAGETYPES-BET FROM P0008-BET01 NEXT P0008-BET02.
    IF WAGETYPES-LGA IS INITIAL.
    EXIT.
    ELSE.
    TOTAL = TOTAL + WAGETYPES-BET.
    WRITE: / WAGETYPES-LGA, WAGETYPES-BET.
    ENDIF.
    ENDDO.
    WRITE TOTAL.
    Thanks
    Venkat.O

  • Menubar load modules for each sub-menu

    I am creating an application using the MENUBAR but cannot get a module to open when a sub-menu is clicked. I have stripped my app down to bare bones to eliminate other factors. The menubar has several main options, such as, Button1, Button2, Button3 and then each has a sub-menu dropdown. If Button1 has Button1Sub1 and Button1Sub2 dropdowns I want to have a different module launch when either of the sub-menus are clicked.
    I have been successful in using ModuleManager to open a particular module referencing the creationComplete="moduleLoadHandler()" but not by selecting a menu item from the menubar. My application needs to be as user-friendly and Windows-like as possible. There are many different modules which need to be loaded and unloaded.
    I have attached a screenshot image of my project tree and circled the ActionModule.swf file to show its location.
    I have attached my code below:
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" creationComplete="creationHandler();" >
        <mx:Script>
            <![CDATA[
                import mx.controls.menuClasses.IMenuBarItemRenderer;
                import mx.controls.MenuBar;
                import mx.controls.menuClasses.MenuBarItem;
                import mx.controls.Alert;
    import mx.modules.Module;
    import mx.events.ModuleEvent;
    import mx.modules.ModuleManager;
    import mx.modules.IModuleInfo;
    import mx.rpc.events.ResultEvent;
    import mx.rpc.events.FaultEvent;
    import mx.events.FlexEvent;
    import mx.events.MenuEvent;
                import mx.collections.*;
                public var _moduleInfo:IModuleInfo;
                [Bindable]
                public var menuBarCollection:XMLListCollection;
                private var menubarXML:XMLList =
                    <>
                        <menuitem label="Menu1" data="top">
                            <menuitem label="MenuItem 1-A" data="1A" itemClick="moduleLoadHandler()"/>
                            <menuitem label="MenuItem 1-B" data="1B"/>
                        </menuitem>
                        <menuitem label="Menu2" data="top">
                            <menuitem label="MenuItem 2-A" type="check"  data="2A"/>
                            <menuitem type="separator"/>
                            <menuitem label="MenuItem 2-B" >
                                <menuitem label="SubMenuItem 3-A" type="radio"
                                    groupName="one" data="3A"/>
                                <menuitem label="SubMenuItem 3-B" type="radio"
                                    groupName="one" data="3B"/>
                            </menuitem>
                        </menuitem>
                        <menuitem label="Menu3" data="top">
                            <menuitem label="MenuItem 3-A" data="3A"/>
                            <menuitem label="MenuItem 3-B" data="3B"/>
                        </menuitem>
                        <menuitem label="Menu4" data="top">
                            <menuitem label="MenuItem 4-A" data="4A"/>
                            <menuitem label="MenuItem 4-B" data="4B"/>
                        </menuitem>                                       
                    </>;
                private function creationHandler():void{
    menuBarCollection = new XMLListCollection(menubarXML);
    private function moduleLoadHandler(event:ModuleEvent ):void{
    canvas.addChild( _moduleInfo.factory.create() as Module );
    _moduleInfo = ModuleManager.getModule('ActionModule.swf');
    _moduleInfo.addEventListener(ModuleEvent.READY, moduleLoadHandler);
    _moduleInfo.load();
                // Event handler for the MenuBar control's itemClick event.
                private function menuHandler(event:MenuEvent):void  {
                    // Don't open the Alert for a menu bar item that
                    // opens a popup submenu.
                    //if (event.item.@data != "top") {
                    //    Alert.show("Label: " + event.item.@label + "\n" +
                    //        "Data: " + event.item.@data, "Clicked menu item");
                private function onTopSelection(event:MenuEvent):void{
                    var mb:MenuBar=event.target as MenuBar;
                    var selectedIndex:int=mb.selectedIndex;
                    for (var i:int=0;i<mb.menuBarItems.length;i++){
                        if(i==selectedIndex){
                            (mb.menuBarItems[i] as MenuBarItem).setStyle("fontWeight","bold");                   
                        else{
                            (mb.menuBarItems[i] as MenuBarItem).setStyle("fontWeight","normal");                           
             ]]>
        </mx:Script>
        <mx:Canvas id="canvas" height="75%" width="75%"
            paddingTop="10" paddingLeft="10">
            <mx:MenuBar labelField="@label" itemClick="menuHandler(event);" dataProvider="{menuBarCollection}" change="onTopSelection(event)" />
        </mx:Canvas>
    </mx:Application>

    Hi,
       I am also doing the same way, but ended up with some issues.
    I have a Main Application with a menu Bar on Top and Rest of the area occupied by a ModuleLoader.
    First I set the URL to login module, on successful login I initialize my menu Bar based on User role and load a new module, it contains only a SuperTabNavigator.
    On click of an item in my Application Menu, I add a Custom Componenet built on Canvas (Named MyCanMod , this contains a Module loader and a progress bar in it , I have attached the code) as a tab to the tab navigator.
    On menu item click, I take the data of my menu item and set that as the URL of my Module Loader inside the Custom canvas. Then it is added as a tab to my tab navigator.
          private function openItem(event:MenuEvent):void
    var myModule:MyCanMod = new MyCanMod();                tabNav.addChild(myModule);
                    tabNav.selectedChild = myModule;
                    myModule.label = event.item.@label;
                    myModule.icon = document_icon;
                    myModule.urlParam = event.item.@module;
    urlParam is a bined to the module Loader url in my Custom componenet.
    All works fine.  I am not unloading any modules and all the module loader are set to current domain.
    When the user logs out and logs back with out refreshing the browser I get Type Error or some time null Object error and it is random. If I refresh the browser and login back, every thing is fine.
    I do have reference for IDragManager,HistoryManager,PopUpManager,RemoteObject in main application.
    I am not concerned about unloading modules now, but then on Tab close event I unloaded the module, and that did not solve the problem.
    I get an error like
    TypeError: Error #1034: Type Coercion failed: cannot convert flexlib.controls::PromptingTextInput@6152a851 to flexlib.controls.PromptingTextInput.
                at mx.core::UIComponent/createReferenceOnParentDocument()
                at mx.core::Container/createComponentFromDescriptor()
                at mx.core::Container/createComponentsFromDescriptors()
                at mx.core::Container/createChildren()
                at mx.core::UIComponent/initialize()
                at mx.core::Container/initialize()
                at mx.core::UIComponent/http://www.adobe.com/2006/flex/mx/internal::childAdded()
                at mx.core::Container/http://www.adobe.com/2006/flex/mx/internal::childAdded()
                at mx.core::Container/addChildAt()
                at mx.core::Container/addChild()
    Any help is appreciated; I am really struck with it, please help.

  • Cannot load underlying module for 'Darwin'

    I had to move my "Developer" account from some external drive to the internal drive of my Mac.
    For this I zipped the users folder, copied to the internal "users" drive and unzipped it there.
    Then I changed the users folder in the users settings. I also updated the permissions on the user "Developer" folder,
    allowing admins "R&W", the user "R&W" (+ setting it as owner) and everyone else no permissions.
    I was able to login to the new home dir. I opened my old Xcode project (that was updated automatically in some fashion).
    But when I compile it I get the error "cannot load underlying module for 'Darwin'"
    => What went wrong ?
    Btw:
    I already removed Xcode, downloaded it again and placed it into the programs folder - same issue ... :-)

    Here is the stack trace:
    <unknown>:0: error: cannot load underlying module for 'Darwin'
    0  swift                    0x00000001025fe968 llvm::sys::PrintStackTrace(__sFILE*) + 40
    1  swift                    0x00000001025fee54 SignalHandler(int) + 452
    2  libsystem_platform.dylib 0x00007fff828c1f1a _sigtramp + 26
    3  libsystem_platform.dylib 0x0000000000000028 _sigtramp + 2104746280
    4  swift                    0x0000000101b63588 swift::ModuleFile::getType(swift::Fixnum<31u, unsigned int>) + 856
    5  swift                    0x0000000101b6936b swift::ModuleFile::getDecl(swift::Fixnum<31u, unsigned int>, swift::Optional<swift::DeclContext*>) + 16027
    6  swift                    0x0000000101b81671 swift::ModuleFile::loadExtensions(swift::NominalTypeDecl*) + 385
    7  swift                    0x0000000101bbbd01 swift::SerializedModuleLoader::loadExtensions(swift::NominalTypeDecl*, unsigned int) + 49
    8  swift                    0x00000001029683af swift::ASTContext::loadExtensions(swift::NominalTypeDecl*, unsigned int) + 63
    9  swift                    0x00000001029c5339 swift::NominalTypeDecl::getExtensions() + 73
    10 swift                    0x00000001029ec9e6 swift::NominalTypeDecl::lookupDirect(swift::DeclName) + 22
    11 swift                    0x00000001029eae8a swift::DeclContext::lookupQualified(swift::Type, swift::DeclName, unsigned int, swift::LazyResolver*, llvm::SmallVectorImpl<swift::ValueDecl*>&) const + 3178
    12 swift                    0x0000000101c1123f (anonymous namespace)::SwiftDeclConverter::recordObjCOverride(swift::AbstractFunctionDecl* ) + 191
    13 swift                    0x0000000101c047ab (anonymous namespace)::SwiftDeclConverter::VisitObjCMethodDecl(clang::ObjCMethodDecl const*, swift::DeclContext*, bool) + 2299
    14 swift                    0x0000000101bfffb4 clang::declvisitor::Base<clang::declvisitor::make_const_ptr, (anonymous namespace)::SwiftDeclConverter, swift::Decl*>::Visit(clang::Decl const*) + 3076
    15 swift                    0x0000000101bff37c swift::ClangImporter::Implementation::importDeclImpl(clang::NamedDecl const*, bool&, bool&) + 316
    16 swift                    0x0000000101c03ad2 swift::ClangImporter::Implementation::importDeclAndCacheImpl(clang::NamedDecl const*, bool) + 226
    17 swift                    0x0000000101c07d3e swift::ClangImporter::Implementation::loadAllMembers(swift::Decl const*, unsigned long long, bool*) + 1486
    18 swift                    0x00000001029ccb56 swift::IterableDeclContext::loadAllMembers() const + 102
    19 swift                    0x00000001029c313c swift::NominalTypeDecl::getMembers(bool) const + 28
    20 swift                    0x00000001029eca1f swift::NominalTypeDecl::lookupDirect(swift::DeclName) + 79
    21 swift                    0x00000001029eae8a swift::DeclContext::lookupQualified(swift::Type, swift::DeclName, unsigned int, swift::LazyResolver*, llvm::SmallVectorImpl<swift::ValueDecl*>&) const + 3178
    22 swift                    0x0000000101c04b17 (anonymous namespace)::SwiftDeclConverter::VisitObjCPropertyDecl(clang::ObjCPropertyDecl const*, swift::DeclContext*) + 183
    23 swift                    0x0000000101bfffea clang::declvisitor::Base<clang::declvisitor::make_const_ptr, (anonymous namespace)::SwiftDeclConverter, swift::Decl*>::Visit(clang::Decl const*) + 3130
    24 swift                    0x0000000101bff37c swift::ClangImporter::Implementation::importDeclImpl(clang::NamedDecl const*, bool&, bool&) + 316
    25 swift                    0x0000000101c03ad2 swift::ClangImporter::Implementation::importDeclAndCacheImpl(clang::NamedDecl const*, bool) + 226
    26 swift                    0x0000000101c07d3e swift::ClangImporter::Implementation::loadAllMembers(swift::Decl const*, unsigned long long, bool*) + 1486
    27 swift                    0x00000001029ccb56 swift::IterableDeclContext::loadAllMembers() const + 102
    28 swift                    0x00000001029c35f5 swift::ExtensionDecl::getMembers(bool) const + 21
    29 swift                    0x00000001029ec9fd swift::NominalTypeDecl::lookupDirect(swift::DeclName) + 45
    30 swift                    0x00000001029eae8a swift::DeclContext::lookupQualified(swift::Type, swift::DeclName, unsigned int, swift::LazyResolver*, llvm::SmallVectorImpl<swift::ValueDecl*>&) const + 3178
    31 swift                    0x0000000101c04b17 (anonymous namespace)::SwiftDeclConverter::VisitObjCPropertyDecl(clang::ObjCPropertyDecl const*, swift::DeclContext*) + 183
    32 swift                    0x0000000101bfffea clang::declvisitor::Base<clang::declvisitor::make_const_ptr, (anonymous namespace)::SwiftDeclConverter, swift::Decl*>::Visit(clang::Decl const*) + 3130
    33 swift                    0x0000000101bff37c swift::ClangImporter::Implementation::importDeclImpl(clang::NamedDecl const*, bool&, bool&) + 316
    34 swift                    0x0000000101c03ad2 swift::ClangImporter::Implementation::importDeclAndCacheImpl(clang::NamedDecl const*, bool) + 226
    35 swift                    0x0000000101c07d3e swift::ClangImporter::Implementation::loadAllMembers(swift::Decl const*, unsigned long long, bool*) + 1486
    36 swift                    0x00000001029ccb56 swift::IterableDeclContext::loadAllMembers() const + 102
    37 swift                    0x00000001029c35f5 swift::ExtensionDecl::getMembers(bool) const + 21
    38 swift                    0x00000001029ec9fd swift::NominalTypeDecl::lookupDirect(swift::DeclName) + 45
    39 swift                    0x00000001029eae8a swift::DeclContext::lookupQualified(swift::Type, swift::DeclName, unsigned int, swift::LazyResolver*, llvm::SmallVectorImpl<swift::ValueDecl*>&) const + 3178
    40 swift                    0x0000000101c04b17 (anonymous namespace)::SwiftDeclConverter::VisitObjCPropertyDecl(clang::ObjCPropertyDecl const*, swift::DeclContext*) + 183
    41 swift                    0x0000000101bfffea clang::declvisitor::Base<clang::declvisitor::make_const_ptr, (anonymous namespace)::SwiftDeclConverter, swift::Decl*>::Visit(clang::Decl const*) + 3130
    42 swift                    0x0000000101bff37c swift::ClangImporter::Implementation::importDeclImpl(clang::NamedDecl const*, bool&, bool&) + 316
    43 swift                    0x0000000101c03ad2 swift::ClangImporter::Implementation::importDeclAndCacheImpl(clang::NamedDecl const*, bool) + 226
    44 swift                    0x0000000101c07d3e swift::ClangImporter::Implementation::loadAllMembers(swift::Decl const*, unsigned long long, bool*) + 1486
    45 swift                    0x00000001029ccb56 swift::IterableDeclContext::loadAllMembers() const + 102
    46 swift                    0x00000001029c35f5 swift::ExtensionDecl::getMembers(bool) const + 21
    47 swift                    0x00000001029ec9fd swift::NominalTypeDecl::lookupDirect(swift::DeclName) + 45
    48 swift                    0x00000001029eae8a swift::DeclContext::lookupQualified(swift::Type, swift::DeclName, unsigned int, swift::LazyResolver*, llvm::SmallVectorImpl<swift::ValueDecl*>&) const + 3178
    49 swift                    0x0000000101c1123f (anonymous namespace)::SwiftDeclConverter::recordObjCOverride(swift::AbstractFunctionDecl* ) + 191
    50 swift                    0x0000000101c047ab (anonymous namespace)::SwiftDeclConverter::VisitObjCMethodDecl(clang::ObjCMethodDecl const*, swift::DeclContext*, bool) + 2299
    51 swift                    0x0000000101bfffb4 clang::declvisitor::Base<clang::declvisitor::make_const_ptr, (anonymous namespace)::SwiftDeclConverter, swift::Decl*>::Visit(clang::Decl const*) + 3076
    52 swift                    0x0000000101bff37c swift::ClangImporter::Implementation::importDeclImpl(clang::NamedDecl const*, bool&, bool&) + 316
    53 swift                    0x0000000101c03ad2 swift::ClangImporter::Implementation::importDeclAndCacheImpl(clang::NamedDecl const*, bool) + 226
    54 swift                    0x0000000101c07d3e swift::ClangImporter::Implementation::loadAllMembers(swift::Decl const*, unsigned long long, bool*) + 1486
    55 swift                    0x00000001029ccb56 swift::IterableDeclContext::loadAllMembers() const + 102
    56 swift                    0x00000001029c35f5 swift::ExtensionDecl::getMembers(bool) const + 21
    57 swift                    0x00000001029ec9fd swift::NominalTypeDecl::lookupDirect(swift::DeclName) + 45
    58 swift                    0x00000001029eae8a swift::DeclContext::lookupQualified(swift::Type, swift::DeclName, unsigned int, swift::LazyResolver*, llvm::SmallVectorImpl<swift::ValueDecl*>&) const + 3178
    59 swift                    0x0000000101c04b17 (anonymous namespace)::SwiftDeclConverter::VisitObjCPropertyDecl(clang::ObjCPropertyDecl const*, swift::DeclContext*) + 183
    60 swift                    0x0000000101bfffea clang::declvisitor::Base<clang::declvisitor::make_const_ptr, (anonymous namespace)::SwiftDeclConverter, swift::Decl*>::Visit(clang::Decl const*) + 3130
    61 swift                    0x0000000101bff37c swift::ClangImporter::Implementation::importDeclImpl(clang::NamedDecl const*, bool&, bool&) + 316
    62 swift                    0x0000000101c03ad2 swift::ClangImporter::Implementation::importDeclAndCacheImpl(clang::NamedDecl const*, bool) + 226
    63 swift                    0x0000000101c07d3e swift::ClangImporter::Implementation::loadAllMembers(swift::Decl const*, unsigned long long, bool*) + 1486
    64 swift                    0x00000001029ccb56 swift::IterableDeclContext::loadAllMembers() const + 102
    65 swift                    0x00000001029c35f5 swift::ExtensionDecl::getMembers(bool) const + 21
    66 swift                    0x00000001029ec9fd swift::NominalTypeDecl::lookupDirect(swift::DeclName) + 45
    67 swift                    0x00000001029eae8a swift::DeclContext::lookupQualified(swift::Type, swift::DeclName, unsigned int, swift::LazyResolver*, llvm::SmallVectorImpl<swift::ValueDecl*>&) const + 3178
    68 swift                    0x0000000101c04b17 (anonymous namespace)::SwiftDeclConverter::VisitObjCPropertyDecl(clang::ObjCPropertyDecl const*, swift::DeclContext*) + 183
    69 swift                    0x0000000101bfffea clang::declvisitor::Base<clang::declvisitor::make_const_ptr, (anonymous namespace)::SwiftDeclConverter, swift::Decl*>::Visit(clang::Decl const*) + 3130
    70 swift                    0x0000000101bff37c swift::ClangImporter::Implementation::importDeclImpl(clang::NamedDecl const*, bool&, bool&) + 316
    71 swift                    0x0000000101c03ad2 swift::ClangImporter::Implementation::importDeclAndCacheImpl(clang::NamedDecl const*, bool) + 226
    72 swift                    0x0000000101c07d3e swift::ClangImporter::Implementation::loadAllMembers(swift::Decl const*, unsigned long long, bool*) + 1486
    73 swift                    0x00000001029ccb56 swift::IterableDeclContext::loadAllMembers() const + 102
    74 swift                    0x00000001029c35f5 swift::ExtensionDecl::getMembers(bool) const + 21
    75 swift                    0x00000001029ec9fd swift::NominalTypeDecl::lookupDirect(swift::DeclName) + 45
    76 swift                    0x00000001029eae8a swift::DeclContext::lookupQualified(swift::Type, swift::DeclName, unsigned int, swift::LazyResolver*, llvm::SmallVectorImpl<swift::ValueDecl*>&) const + 3178
    77 swift                    0x00000001028ebd20 swift::TypeChecker::lookupMember(swift::Type, swift::DeclName, swift::DeclContext*, bool) + 112
    78 swift                    0x00000001028ec3c2 swift::TypeChecker::lookupConstructors(swift::Type, swift::DeclContext*) + 34
    79 swift                    0x00000001028c965a swift::TypeChecker::addImplicitConstructors(swift::NominalTypeDecl*, llvm::SmallVectorImpl<swift::Decl*>&) + 1050
    80 swift                    0x00000001028c253d swift::TypeChecker::checkInheritanceClause(swift::Decl*, swift::DeclContext*, swift::GenericTypeResolver*) + 5213
    81 swift                    0x00000001028c459f swift::TypeChecker::validateDecl(swift::ValueDecl*, bool) + 1631
    82 swift                    0x00000001028d2ebf swift::ASTVisitor<(anonymous namespace)::DeclChecker, void, void, void, void, void, void>::visit(swift::Decl*) + 2287
    83 swift                    0x00000001028c3f0b swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) + 123
    84 swift                    0x00000001028aa1d8 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, unsigned int) + 1384
    85 swift                    0x0000000101bdf5dd swift::CompilerInstance::performSema() + 2381
    86 swift                    0x0000000101944788 frontend_main(llvm::ArrayRef<char const*>, char const*, void*) + 2008
    87 swift                    0x000000010194286d main + 1677
    88 libdyld.dylib            0x00007fff849515c9 start + 1
    Stack dump:
    0. Program arguments: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/ usr/bin/swift -frontend -c /Users/developer/_CloudStation/Work2/MyEvent5/MyEvent/Speaker.swift -primary-file /Users/developer/_CloudStation/Work2/MyEvent5/MyEvent/EventViewController.swift /Users/developer/_CloudStation/Work2/MyEvent5/MyEvent/SpeechTableViewCell.swift /Users/developer/_CloudStation/Work2/MyEvent5/MyEvent/SpeechDAO.swift /Users/developer/_CloudStation/Work2/MyEvent5/MyEvent/SpeechTableViewController .swift /Users/developer/_CloudStation/Work2/MyEvent5/MyEvent/BaseViewController.swift /Users/developer/_CloudStation/Work2/MyEvent5/MyEvent/MyCoreDataUtil.swift /Users/developer/_CloudStation/Work2/MyEvent5/MyEvent/SpeakerViewController.swi ft /Users/developer/_CloudStation/Work2/MyEvent5/MyEvent/SpeakerExtension.swift /Users/developer/_CloudStation/Work2/MyEvent5/MyEvent/MyGraficsUtil.swift /Users/developer/_CloudStation/Work2/MyEvent5/MyEvent/SpeakerDAO.swift /Users/developer/_CloudStation/Work2/MyEvent5/MyEvent/Speech.swift /Users/developer/_CloudStation/Work2/MyEvent5/MyEvent/SpeechViewController.swif t /Users/developer/_CloudStation/Work2/MyEvent5/MyEvent/AppDelegate.swift /Users/developer/_CloudStation/Work2/MyEvent5/MyEvent/EventDAO.swift /Users/developer/_CloudStation/Work2/MyEvent5/MyEvent/SpeakerTableViewCell.swif t /Users/developer/_CloudStation/Work2/MyEvent5/MyEvent/Event.swift /Users/developer/_CloudStation/Work2/MyEvent5/MyEvent/EventTableViewController. swift /Users/developer/_CloudStation/Work2/MyEvent5/MyEvent/BaseTableViewController.s wift /Users/developer/_CloudStation/Work2/MyEvent5/MyEvent/EventExtension.swift /Users/developer/_CloudStation/Work2/MyEvent5/MyEvent/AppDelegate2.swift /Users/developer/_CloudStation/Work2/MyEvent5/MyEvent/EventTableViewCell.swift /Users/developer/_CloudStation/Work2/MyEvent5/MyEvent/SpeechExtention.swift /Users/developer/_CloudStation/Work2/MyEvent5/MyEvent/SpeakerTableViewControlle r.swift -target x86_64-apple-ios7.1 -target-cpu core2 -sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/D eveloper/SDKs/iPhoneSimulator8.2.sdk -I /Users/developer/Library/Developer/Xcode/DerivedData/MyEvent-duznkkgndabyibfise vremphydfg/Build/Products/Debug-iphonesimulator -F /Users/developer/Library/Developer/Xcode/DerivedData/MyEvent-duznkkgndabyibfise vremphydfg/Build/Products/Debug-iphonesimulator -g -import-objc-header /Users/developer/_CloudStation/Work2/MyEvent5/MyEvent/MyEvent-Bridging-Header.h -module-cache-path /Users/developer/Library/Developer/Xcode/DerivedData/ModuleCache -Xcc -I/Users/developer/Library/Developer/Xcode/DerivedData/MyEvent-duznkkgndabyibfi sevremphydfg/Build/Intermediates/MyEvent.build/Debug-iphonesimulator/MyEvent.bui ld/swift-overrides.hmap -Xcc -iquote -Xcc /Users/developer/Library/Developer/Xcode/DerivedData/MyEvent-duznkkgndabyibfise vremphydfg/Build/Intermediates/MyEvent.build/Debug-iphonesimulator/MyEvent.build /MyEvent-generated-files.hmap -Xcc -I/Users/developer/Library/Developer/Xcode/DerivedData/MyEvent-duznkkgndabyibfi sevremphydfg/Build/Intermediates/MyEvent.build/Debug-iphonesimulator/MyEvent.bui ld/MyEvent-own-target-headers.hmap -Xcc -I/Users/developer/Library/Developer/Xcode/DerivedData/MyEvent-duznkkgndabyibfi sevremphydfg/Build/Intermediates/MyEvent.build/Debug-iphonesimulator/MyEvent.bui ld/MyEvent-all-target-headers.hmap -Xcc -iquote -Xcc /Users/developer/Library/Developer/Xcode/DerivedData/MyEvent-duznkkgndabyibfise vremphydfg/Build/Intermediates/MyEvent.build/Debug-iphonesimulator/MyEvent.build /MyEvent-project-headers.hmap -Xcc -I/Users/developer/Library/Developer/Xcode/DerivedData/MyEvent-duznkkgndabyibfi sevremphydfg/Build/Products/Debug-iphonesimulator/include -Xcc -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchai n/usr/include -Xcc -I/Users/developer/Library/Developer/Xcode/DerivedData/MyEvent-duznkkgndabyibfi sevremphydfg/Build/Intermediates/MyEvent.build/Debug-iphonesimulator/MyEvent.bui ld/DerivedSources/x86_64 -Xcc -I/Users/developer/Library/Developer/Xcode/DerivedData/MyEvent-duznkkgndabyibfi sevremphydfg/Build/Intermediates/MyEvent.build/Debug-iphonesimulator/MyEvent.bui ld/DerivedSources -Xcc -DDEBUG=1 -emit-module-doc-path /Users/developer/Library/Developer/Xcode/DerivedData/MyEvent-duznkkgndabyibfise vremphydfg/Build/Intermediates/MyEvent.build/Debug-iphonesimulator/MyEvent.build /Objects-normal/x86_64/EventViewController~partial.swiftdoc -Onone -module-name MyEvent -emit-module-path /Users/developer/Library/Developer/Xcode/DerivedData/MyEvent-duznkkgndabyibfise vremphydfg/Build/Intermediates/MyEvent.build/Debug-iphonesimulator/MyEvent.build /Objects-normal/x86_64/EventViewController~partial.swiftmodule -serialize-diagnostics-path /Users/developer/Library/Developer/Xcode/DerivedData/MyEvent-duznkkgndabyibfise vremphydfg/Build/Intermediates/MyEvent.build/Debug-iphonesimulator/MyEvent.build /Objects-normal/x86_64/EventViewController.dia -emit-dependencies-path /Users/developer/Library/Developer/Xcode/DerivedData/MyEvent-duznkkgndabyibfise vremphydfg/Build/Intermediates/MyEvent.build/Debug-iphonesimulator/MyEvent.build /Objects-normal/x86_64/EventViewController.d -o /Users/developer/Library/Developer/Xcode/DerivedData/MyEvent-duznkkgndabyibfise vremphydfg/Build/Intermediates/MyEvent.build/Debug-iphonesimulator/MyEvent.build /Objects-normal/x86_64/EventViewController.o
    1. While type-checking 'EventViewController' at /Users/developer/_CloudStation/Work2/MyEvent5/MyEvent/EventViewController.swift :11:1
    2. While reading from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/ usr/lib/swift/iphonesimulator/Foundation.swiftmodule
    3. While deserializing decl #105 (EXTENSION_DECL)

  • Is their any function module for deleting condition record i am trying

    Hi Experts,
    Is their any function module for deleting condition record i am trying  this way.......
    DATA: TABLE (4) TYPE C.
    DATA: KNUM LIKE KONH-KNUMH
    DATA: K_VEWE LIKE T681-KVEWE VALUE 'A'.
    DATA: T681_STR LIKE T681.
    DATA: LV_NUM TYPE I.
    GET PARAMETERS
    PARAMETERS: TABNO LIKE T681-KOTABNR.
    PARAMETERS: TESTMODE DEFAULT 'X' AS CHECKBOX.
    REFRESH INT_KNUMH.
    Select single * from T681 into T681_STR
    where kvewe = K_VEWE AND
    KOTABNR = TABNO.
    IF SY-SUBRC NE 0.
    WRITE: / 'No entry in T681 for number ', TABNO.
    WRITE: / 'Check whether corresponding condition table exists.'.
    EXIT.
    ENDIF.
    TABLE = T681_STR-KOTAB.
    SELECT KNUMH FROM (TABLE) INTO KNUM.
    SELECT SINGLE * FROM KONH WHERE KNUMH = KNUM.
    IF SY-SUBRC NE 0.
    INT_KNUMH-KNUMH = KNUM.
    COLLECT INT_KNUMH.
    ENDIF.
    ENDSELECT.
    DESCRIBE TABLE INT_KNUMH LINES LV_NUM.
    IF LV_NUM EQ 0.
    WRITE: / 'No inconsistent entries found.'.
    WRITE: / 'Each record in the condition table has a corresponding.'.
    WRITE: / 'entry in the KONH table.'.
    EXIT.
    ENDIF.
    LOOP AT INT_KNUMH.
    IF TESTMODE IS INITIAL.
    DELETE FROM (TABLE) WHERE
    KNUMH = INT_KNUMH-KNUMH.
    IF SY-SUBRC = 0.
    WRITE: / 'KNUMH =', INT_KNUMH-KNUMH(10), ' deleted from table ' ,TABLE.
    ELSE.
    WRITE: / 'DELETE: SY-SUBRC is', SY-SUBRC , ' FOR KNUMH = ' .
    WRITE: INT_KNUMH-KNUMH(10).
    ENDIF.
    ELSE.
    WRITE: / 'TESTRUN: KNUMH =', INT_KNUMH-KNUMH(10).
    ENDIF.
    ENDLOOP.
    is their any Standerd Function module  for comparing  tables if the condition record not exist in it has to exit if it is their then compare  those two tables if not exist in one table also that has  to be delete  the condition record
    Please let me know .....

    Hi,
       You can use Function module PRICING_CHECK to check condition record. Do a where-used list on it to see how to call it.
    Regards
    Kiran Sure

  • Custom login module for EP7.4 with Captcha

    Hi
    I am trying to create a custom login module which validates the captcha shown at the login screen using SAP help link:
    http://help.sap.com/saphelp_nw73/helpdata/en/48/ff4faf222b3697e10000000a42189b/content.htm?frameset=/en/48/fcea4f62944e88e10000000a421937/frameset.htm&current_toc=/en/74/8ff534d56846e2abc61fe5612927bf/plain.htm&node_id=20
    The session is being set in the Captcha servlet which is used to render the image on the login page.
    However when I am trying to compare it with input or print the session value, its throwing an exception.
    I checked in the NWA logs and it just shows the following error message:
    6. com.temp.loginModule.MyLoginModuleClass OPTIONAL ok exception true Authentication did not succeed.
    Please help me analyse the error stack. Can someone point where do i check the detailed logs to trace the issue?
    Please find below source of my login module.
    package com.temp.loginModule;
    import java.io.IOException;
    import java.util.Map;
    import javax.security.auth.login.LoginException;
    import javax.security.auth.Subject;
    import javax.security.auth.callback.CallbackHandler;
    import javax.security.auth.callback.Callback;
    import javax.security.auth.callback.NameCallback;
    import javax.security.auth.callback.UnsupportedCallbackException;
    import nl.captcha.Captcha;
    import com.sap.engine.interfaces.security.auth.AbstractLoginModule;
    import com.sap.engine.lib.security.http.HttpGetterCallback;
    import com.sap.engine.lib.security.http.HttpCallback;
    import com.sap.engine.lib.security.LoginExceptionDetails;
    import com.sap.engine.lib.security.Principal;
    public class MyLoginModuleClass extends AbstractLoginModule{
      private CallbackHandler callbackHandler = null;
      private Subject subject = null;
      private Map sharedState = null;
      private Map options = null;
      // This is the name of the user you have created on
      // the AS Java so you can test the login module
      private String userName = null;
      private boolean successful;
      private boolean nameSet;
      public void initialize(Subject subject, CallbackHandler callbackHandler,
      Map sharedState, Map options) {
      // This is the only required step for the method
      super.initialize(subject, callbackHandler, sharedState, options);
      // Initializing the values of the variables
      this.callbackHandler = callbackHandler;
      this.subject = subject;
      this.sharedState = sharedState;
      this.options = options;
      this.successful = false;
      this.nameSet = false;
      * Retrieves the user credentials and checks them. This is
      * the first part of the authentication process.
      public boolean login() throws LoginException {
    // HttpGetterCallback httpGetterCallback = new HttpGetterCallback(); 
    //       httpGetterCallback.setType(HttpCallback.REQUEST_PARAMETER); 
    //       httpGetterCallback.setName("captchaInput"); 
           String value = null; 
    //       try { 
    //       callbackHandler.handle(new Callback[] { httpGetterCallback }); 
    //           String[] arrayRequestparam = (String[]) httpGetterCallback.getValue(); 
    //           if(arrayRequestparam!=null && arrayRequestparam.length>0)
    //           value = arrayRequestparam[0]; 
    //       } catch (UnsupportedCallbackException e) { 
    //       throwNewLoginException("An error occurred while trying to validate credentials."); 
    //       } catch (IOException e) { 
    //            throwUserLoginException(e, LoginExceptionDetails.IO_EXCEPTION); 
      value = getRequestValue("captchaInput");
      userName = getRequestValue("j_username");
      HttpGetterCallback httpGetterCallbackSessionCaptcha = new HttpGetterCallback(); 
      httpGetterCallbackSessionCaptcha.setType(HttpCallback.SESSION_ATTRIBUTE); 
      httpGetterCallbackSessionCaptcha.setName("myCaptchaLogin"); 
      try { 
      callbackHandler.handle(new Callback[] { httpGetterCallbackSessionCaptcha }); 
      Captcha arraySessionParam = (Captcha) httpGetterCallbackSessionCaptcha.getValue();
    // System.out.println("****************************************************httpGetterCallbackSessionCaptcha" + (arraySessionParam==null?"null session":arraySessionParam.getAnswer())+
    // "\n captchaInput" + value+"*********************");
      if(arraySessionParam==null || !arraySessionParam.isCorrect(value)){
      throwNewLoginException("Entered code does not match with the image code.Session:"+(arraySessionParam==null?"null":arraySessionParam.getAnswer())+" Param:"+ value);
    // throwUserLoginException(new Exception("Entered code does not match with the image code."));
      httpGetterCallbackSessionCaptcha.setValue(null);
      } catch (UnsupportedCallbackException e) { 
      throwNewLoginException("An error occurred while trying to validate credentials."); 
      } catch (IOException e) { 
      throwUserLoginException(e, LoginExceptionDetails.IO_EXCEPTION); 
      // Retrieve the user credentials via the callback
      // handler.
      // In this case we get the user name from the HTTP
      // NameCallback.
    // NameCallback nameCallback = new NameCallback("User name: ");
      /* The type and the name specify which part of the HTTP request
      * should be retrieved. For Web container authentication, the
      * supported types are defined in the interface
      * com.sap.engine.lib.security.http.HttpCallback.
      * For programmatical authentication with custom callback
      * handler the supported types depend on the used callback handler.
    // try {
    // callbackHandler.handle(new Callback[] {nameCallback});
    // catch (UnsupportedCallbackException e) {
    // return false;
    // catch (IOException e) {
    // throwUserLoginException(e, LoginExceptionDetails.IO_EXCEPTION);
    // userName = nameCallback.getName();
    // if( userName == null || userName.length() == 0 ) {
    // return false;  
      /* When you know the user name, update the user information
      * using data from the persistence. The operation must
      * be done before the user credentials checks. This method also
      * checks the user name so that if a user with that name does not
      * exist in the active user store, a
      * java.lang.SecurityException is thrown.
    // try {
    // refreshUserInfo(userName);
    // } catch (SecurityException e) {
    // throwUserLoginException(e);
      /* Checks if the given user name starts with the specified
      * prefix in the login module options. If no prefix is specified,
      * then all users are trusted.
    // String prefix = (String) options.get("user_name_prefix");
    // if ((prefix != null) && !userName.startsWith(prefix)) {
    // throwNewLoginException("The user is not trusted.");
      /* This is done if the authentication of the login module is    
      * successful.
      * Only one and exactly one login module from the stack must put
      * the user name in the shared state. This user name represents
      * the authenticated user.
      * For example if the login attempt is successful, method
      * getRemoteUser() of
      * the HTTP request will retrieve exactly this name.
      if (sharedState.get(AbstractLoginModule.NAME) == null) {
      sharedState.put(AbstractLoginModule.NAME, userName);
      nameSet = true;
      successful = true;
      return true;
      * Commit the login. This is the second part of the authentication
      * process.
      * If a user name has been stored by the login() method,
      * the user name is added to the subject as a new principal.
      public boolean commit() throws LoginException {
      if (successful) {
      /* The principals that are added to the subject should
      * implement java.security.Principal.You can use the class
      * com.sap.engine.lib.security.Principal for this purpose.
      Principal principal = new Principal(userName);
      subject.getPrincipals().add(principal);
      /* If the login is successful, then the principal corresponding
      * to the <userName> (the same user name that has been added
      * to the subject) must be added in the shared state too.
      * This principal is considered to be the main principal
      * representing the user.
      * For example, this principal will be retrieved from method
      * getUserPrincipal() of the HTTP request.
      if (nameSet) {
      sharedState.put(AbstractLoginModule.PRINCIPAL, principal);
      } else {
      userName = null;
      return true;
      * Abort the authentication process.
      public boolean abort() throws LoginException {
      if (successful) {
      userName = null;
      successful = false;
      return true;
      * Log out the user. Also removes the principals and
      * destroys or removes the credentials that were associated 
      * with the user during the commit phase.
      public boolean logout() throws LoginException {
      // Remove principals and credentials from subject
      if (successful) {
      subject.getPrincipals(Principal.class).clear();
      successful = false;
      return true;
      private String getRequestValue(String parameterName) 
         throws LoginException { 
           HttpGetterCallback httpGetterCallback = new HttpGetterCallback(); 
           httpGetterCallback.setType(HttpCallback.REQUEST_PARAMETER); 
           httpGetterCallback.setName(parameterName); 
           String value = null; 
           try { 
          callbackHandler.handle(new Callback[] { httpGetterCallback }); 
               String[] arrayRequestparam = (String[]) httpGetterCallback.getValue(); 
               value = arrayRequestparam[0]; 
           } catch (UnsupportedCallbackException e) { 
                return null; 
           } catch (IOException e) { 
                throwUserLoginException(e, LoginExceptionDetails.IO_EXCEPTION); 
           return value; 
    Regards
    Ramanender Singh

    Ramanender,
    JAAS modules usually requires a restart whenever you need to change them. So be very careful with what you expect once you re-deploy your code.
    Once the library is loaded it will never reload itself until you perform a restart of the VM. 
    Connect to the debug port may help, but basic debugging will not take you too far either.
    I would recommend you to use the log tracing facility on your code. Just enter the following class attribute:
    import com.sap.tc.logging.Location;
    private static final Location trace = Location.getLocation(<your_classname_here>.class);
    trace.warningT("Some Warning Text Here..." + variable here);
    trace.debugT("Some Warning Text Here..." + variable here);
    You may need to go NWA and set the Location Severity Level to Debug according to your needs.
    Leave the trace code on your module for IT personnel to debug it if necessary. Don't forget to have the severity level of your code properly set.
    Meaning: You don't want to have every trace message your module sills out with warningT() or infoT().
    There is a excellent blog here on how this works
    Then you will be able to inspect some variable contents while the callbackhandler is being executed.
    Pay special attention with the timing - variables have a lifetime when dealing with login modules.
    Use the entering(<method_name>) and exiting(<method_name> just ot make sure where in the code the variable should be populated and when.
    BR,
    Ivan

  • Merge modules for Business Objects XI service pack 4

    I am in the process of developing a deployment package in Installshield 2009 - Basic MSI Project.  I tried adding the merge modules I downloaded earlier from the web page, http://support.businessobjects.com/downloads/runtime.asp
    Currently I do not see this web page.  It would be nice if you could tell me whether do we have a merge module for Crystal Reports XI service pack 4.  If we have where from i can download them.  Thank you

    Thanks a lot for the immediate response.  However, I am not using the crystal reports Version, R2 release.
    I had actually installed Business Object XI and applied service pack 4 on it.  I checked the version in Help->About. It is 11.0.0.  
    Also my environment is XP Sp2, Visual studio 2003 and Visual studio 6.0.  I understand that R2 release is needed if the environment is Visual Studio 2005.
    I would like to give a clear picture of the issue I work through.    
    After deploying the software in the client machine, I came to know that  when client tried to print the embedded crystal report (.dsr file) from CrViewer, 
    1. Page set-up dialog bog gets displayed.
    2. After clicking 'OK' button in the page set-up dialog box, nothing happens.  It is suppose to bring print dialog.
    I simulated this in my development machine (confirmed that Print dialog is is not getting displayed when 'OK' button is clicked from 'Page setup' dialog)
    I researched and found out from some web page that if Business Objects XI is updated to Service pack 4, this issue gets resolved
    So i applied service pack 4 in my dev. machine and tested the functionality by clicking 'OK' button.  This issue is no more.
    Next logical step is to propagate the sp4 changes to the installer.  I searched for the merge modules corresponding to Business Objects XI - service pack 4.  I could not locate it now.
    I searched my backup folder,  I located some previously downloaded merge modules downloaded from  the web page, http://support.businessobjects.com/downloads/runtime.asp
    I tried to include these merge modules and received an error message "Internal build error" .  My research revealed that inclusion of the merge module,  CrystalReports11_RDC_Reportengine.msm  (43,306 Kb, 7/4/2007) throws "Internal build error"  during compilation of MSI project in Installshield 2009.
    Any idea, tips and help to resolve the issue would be appreciated.  Thank you.

  • Need a Pegging module for dependent requirements.

    Hi
    Need a Pegging functional module for dependent requirements.
    There is MD_PEGGING_NODIALOG ,where we need to pass the planned order number.
    Please advise how to get the pegged requirements for dependent requirements or other MRP elements other than planned order.
    Thanks
    Prasad

    Hello,
    Function module MD_PEGGING_NODIALOG works with data structures of MRP list or current requirements/stock list. For a given material, you first need to fetch the relevant structures by the help of following FMs; BAPI_MATERIAL_MRP_LIST and BAPI_MATERIAL_STOCK_REQ_LIST. You can loop at the structures exported by these FMs and run MD_PEGGING_NODIALOG with the corresponding parameters of the MRP element you require. You can run MD_PEGGING_NODIALOG with any MRP element you like as in MD04 and MD05 transactions.
    Regards.

  • Need separate duplicate JMS modules for each server?

    Using WebLogic 9.2.2 on AIX 5.3.
    I'm trying to set up a domain with 6 managed servers. I need to deploy several JMS queues and a foreign server to each JMSServer on each server. I looked at the JMSModule object, and I'm trying to determine whether it's possible to define a single JMSModule that I can deploy to all of my servers. So far, this doesn't appear to be possible. As a result, I have to do tons of painful cut/paste inside the console. Is this how it's supposed to work?

    David,
    Sorry, if I was not clear earlier.
    A Module can be targeted to a single Cluster, one or more comma separated list of WLS servers and the servers don't have to be part of a cluster (note that certain resources such as UDD or CF that can be targeted to an entire cluster, cannot be done so, if the module is not targeted to the cluster. And to achieve the same, the user has to manually add/remove the managed servers to the list of Module's/sub-deployment's targets whenever a server is added or removed to/from the cluster/domain).
    So, in your case, you can define all the JMS resources for that domain in a single Module descriptor and deploy it to a list of all the managed servers. Then you can use the sub-deployments to group and target them onto other related targets (for example, one or more queues can be grouped as a sub-deployment and targeted to a single JMSServer that is hosted by one of the WLS server instance, where the Module is currently targeted to, etc).
    I believe you are creating/using a "system resource" type module via Admin console, the JMSModules wizard shall walk you through the targeting page, where you can see all the available target servers/clusters.
    Here is an example of config.xml snippet for this kind of module targeting :
    <jms-system-resource>
    <name>SystemModule-0</name>
    <target>Server-0,Server-1</target>
    <sub-deployment>
    <name>ConnectionFactory-0</name>
    <target>Server-0,Server-1</target>
    </sub-deployment>
    <sub-deployment>
    <name>Queues</name>
    <target>JMSServer-0</target>
    </sub-deployment>
    <descriptor-file-name>jms/systemmodule-0-jms.xml</descriptor-file-name>
    </jms-system-resource>
    and the corresponding JMS module descriptor file snippet (can be found under DOMAIN_DIR/config/jms dir) as shown below:
    <?xml version='1.0' encoding='UTF-8'?>
    <weblogic-jms xmlns="http://www.bea.com/ns/weblogic/weblogic-jms" xmlns:sec="http://www.bea.com/ns/weblogic/90/security" xmlns:wls
    ="http://www.bea.com/ns/weblogic/90/security/wls" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http:/
    /www.bea.com/ns/weblogic/weblogic-jms http://www.bea.com/ns/weblogic/weblogic-jms/1.0/weblogic-jms.xsd">
    <connection-factory name="ConnectionFactory-0">
    <sub-deployment-name>ConnectionFactory-0</sub-deployment-name>
    <jndi-name>ConnectionFactory-0</jndi-name>
    <security-params>
    <attach-jmsx-user-id>false</attach-jmsx-user-id>
    </security-params>
    </connection-factory>
    <queue name="Queue-0">
    <sub-deployment-name>Queues</sub-deployment-name>
    <jndi-name>Queue-0</jndi-name>
    </queue>
    </weblogic-jms>
    That being said, depending on, how many resources (factories, destinations etc) you are having and how you are going to group them, you may end of with too many sub-deployments within a single module, for which you need to carefully select targets/manage them.
    Both approaches (one module descriptor with many sub-deployments and many module descriptors with fewer sub deployments) have positives and negatives, when its comes to manageability. The recommended best practice is to have the JMS resource configuration split into more than one module with fewer number of sub-deployments within each, to have finer control over the resource configuration/management.
    Sounds like, you are trying to configure one queue on every managed server, that has duplicate(same) configuration properties. If that is the case, you can try using the UDD (Uniform Distributed Destination), that comes with automatic member (physical destination) management on all of its targets. That way, all you need is one UDD resource configuration/sub-deployment in the module and target the sub-deployment to the same targets as the module's targets (or accept the default targeting option, if available in the resource targeting page).
    More information on UDDs can be found here:
    http://edocs.bea.com/wls/docs100/jms/dds.html#wp1313025
    Hope this helps.
    Thanks
    Kats

Maybe you are looking for

  • Cant delete something? Help!

    Basically I tried installing an app, but something happened, I don't really know, and now, I can't delete it. If press and hold it, there wont appear any X's on the installing app, and I cant think of anything else that would allow me to delete it. T

  • Can apple tv play eyetv files?

    Hi Does anyone one know if apple tv can play eyetv files? If not, inside an eyetv file package there is a .mpg file - can it open it up and play that file? Also, can the apple tv get video files from anywhere on the mac's hd or do we need to store th

  • JRMC remote monitoring for web logic not working

    Hi, I am using Oracle 1031, and JRMC version 3.0.5. I have added following option to startWebLogic.cmd - JAVA_OPTIONS="-Djava.rmi.server.hostname=host -Xmanagement:ssl=false,authenticate=true,autodiscovery=true,port=7091 export JAVA_OPTIONS" I am abl

  • Slate 8 pro latest update crashed

    HI all, I am using an HP 8 Pro 7600el (Italian version) that I had upgraded to KitKat by downloading the update.zip from HP Web site (version 1.01.01)  and installing it from recovery image. Everything has gone fine for a few months up to yesterday w

  • Where do I find download for my Adobe software

    I thought that I downloaded the adobe software but it is not showing that I did. How do I find software on this webpage to download?