Changes in Supplier Registration Form ROS_SELF_REG

Dear all,
We need to change the BSP application in ROS_SELF_REG to add some additional fields ....
The business requirement is to avoid vendor duplication by comparing with the Tax identification number in R3 vendor master.
So we need to have a field to enter the Tax identification number ....
We have the following questions :
1. Whether there is any field already available for this purpose in the screen ?
2. What all minimum configurations to be done for this BSP to be executed in the SRM system ??
3. Which BAdi is to be implemented to have this done ?? - There should be 2 BAdis since the form has to changed when it is being loaded and also after the form is submitted ..
4. In the BSP which are the events that are necessary for this process ??
Thanks in Advance ...
Regards,
Vivek K

Hi,
  You wil have to 2 BADi's for customer fields in ROS:
ROS_BUPA_DATA_CHECK
ROS_REQ_CUF
Please read the documentation for the above 2 BADi's.
For the ROS_SELF_REG to be executed in Web,you just need to do the Internal ITS settings on the SRM server.You can execute this BSP from SICF trsacn.
For ITS activation,
-->Maintain the entries in table TWPURLSVR.
e.g.Logical system   MRDCLNT100
Web server           SAPDEV14.XEROX.COM:8001
Web protocol         HTTP
SAP GUI for HTML ID
GUI start server     SAPDEV14.XEROX.COM:8001
GUI start protocol   HTTP
GUI start path ID
KW Web server       SAPDEV14.XEROX.COM:8001
KW protocol          HTTP
KW path ID
Drag&Relate Server
Drag&Relate protocol
Drag&Relate path ID
BSP Server           SAPDEV14.XEROX.COM:8001
BSP Protocol         HTTP
BSP Path ID
-->Activate the default host in SICF.
-->Publish all the services in SE80.(execute the report W3_PUBLISH_SERVICES).
BR,
Disha.
Pls  reward points for useful answers.

Similar Messages

  • Supplier Registration Custom Fields

    Hello,
    My client has a requirement to include custom fields to the Supplier Registration form (ROS_SELF_REG) - I was wondering if there's an easy way to achieve that?
    Thanks,
    Umar

    Hi Jagdish,
    Apparently OCI includes 5 custom fields that can be used or schema can be extended using I_OCI_CUSTOMER_EXTENSION; I was wondering if such an option exists for OPI as well or is changing the BSP application the only option available. To implement the complete registration process, I'll need to carry the additional fields from OPI to BP Creation.
    One other approach that I have thought about is to use one of the unused fields (in our case, for example, PO BOX) and customize the TRANSFER routines (OPI to SRM/BP). What do you think?
    Thanks!
    Umar

  • Suppliers self registration form

    Dear all,
    We are using the suppliers self registration form. When we are logging
    in to the form it displays a message at the bottom of the message
    regarding the option to change/add text to the form. There is a
    reference to transaction SE61 but it does not say which class and ID.
    Can anyone tell me wha is the class and ID for the text maintenance?
    Thanks,
    Yaron

    Hi Yaron,
    please go to following SPRO path:
    Supplier Relationship Management->Supplier Self Services->   
    Settings for user inerface-> Specify Data Privacy Settings for Suppliers
    There you will find the text ID's to edit, or you create a new text in SE61 and speficy its ID in the customizing.
    regards
    Zoltan

  • Error in Self Registration form

    Hi,
    Language field in the initial supplier self registration form is mandatory in ROS. Even after selecting english, it gives me error, select yr language. Pl let me know how to correct it. Is it related to config in web survey or is it html form error?
    Regards,

    Hi Pooja,
    This error usually occurs when you have wrongly populated some other field. For ex : In email id you mention 'abc ' instead of 'abc at xyz.com'.
    Pl ensure that all other fields are populated in the correct format.
    It's a strange behaviour of the ROS_SELF_REG BSP page.
    Regards,
    Nikhil

  • Duplicate vendor check during supplier registration

    Hi Gurus,
    Does SAP SRM ROS check for duplicate vendor during supplier registration?  if it is not done in standard, can it be enhanced to do so?
    Thanks and regards,
    Ranjan

    Hi Ranjan,
    Every supplier who registers will have a unique BP number in the ROS client. However checking for duplicacy by name is not supported in standard ROS.
    One option is that when a strategic purchaser accepts these suppliers and creates a BP in SRM, he notices a duplicacy and informs the vendor. However this will fail if there is a huge volume of vendors registering everyday.
    Possible workaround: When the new vendor fills in the registration form, he provides the name of organisation and this is stored in tables using BAPIBUS1006_CENTRAL_ORGAN. May be you can sit with an ABAP guy and find out in which table this entry sits. You can then have a Z table where you store all these organisation names whenever a new vendor registers and for checking duplicacy you could run a loop through this Ztable Column which stores the name and display a message on 'ROS_SELF_REG' BSP reg page whenever a duplicate entry is found.
    PS : Entries like 'IBM' and 'IBM Ltd' will still be created as 2 different entities even though they mean the same.
    Nikhil
    Edited by: Nikhil RGupta on Jun 21, 2011 11:31 AM

  • Supplier Registration without SUS or XI?

    Can I do Supplier (Vendor) Registration without SUS or XI?  If not, what are my limitations?
    I am using SRM server 5.5, and am not using CCM as the supplier directory. I am not using questionnaires.  ROS_SELF_REG works.  However, I can’t notify vendors via email of acceptance.  Because I don’t have SUS, I can’t use SRMSUS_SELFREG and SRMSUS_SELFEDIT, correct?  To do User Registration, can I use ROS_SELF_EDIT?
    How is workflow WS10000209 (Approving External User Master Record) used?
    I appreciate any feedback.

    Hi Scott
    It's difficult to give a reply hre, but let me give it a try...For more details, try the links given above by other friends.
    You do not need SUS for Self-registration.
    COnfig
    1)Create another client for ROS.
    2)Create RFC destination for EBP system in new client. Similarly, maintain RFC dest for ROS client in EBP system.
    3)Maintain backend systems for ROS system in EBP and EBP system in ROS.
    4)Configure some product categories (need not replicate from ERP) to be used during registration.
    5)Configure the IMG settings for Supplier Self-registration (they are easy..just go through them once.
    6)Configure SCOT settings (check notes 455140) for outbound & inbound mails.
    7)Maintain org plan for purchasing org (ppoma_bbp)& vendor group(ppomv_bbp). No need for elaborate org plan like in EBP...just simple org plan.
    8) Maintain table BBP_marketp_info (Txn:SM30)
    9) Activate ROS_SELF_REG, ROS_prescreen etc ROS services in SICF
    10) Maintain client and logon info in ROS_SELF_REG service (SICF)
    11) In EBP client, maintain SAP client parameter for role SAP_EC_BBP_ST_PURCHASER for BSP link preselect suppliers (right click and change node details).
    12) Maintain catalog call structure settings in EBP client IMG for the ROS supplier directory. The URL shd be taken from ros_prescreen attributes in ROS client.
    Process:
    1) With the service ROS_SELF_REG, a partner can register. System creates a BP (prospect) in the ROS client.
    2) An email is sent to the given email id
    3) Fill the attachment and click 'send survey' button. An email is sent to the system and system copies the survey response to the registered business partner
    4) From EBP client, click on preselect suppliers. System launches the ROS client registrations listing screen.
    5) Check the suppliers registered, check the data and accept/reject the supplier registration
    6) Accepted suppliers data can be pulled into EBP through 'Maintain Business Partners' transaction and create supplier (bidder/vendor) in EBP client.
    Hope it helps
    Best regards
    Ramki

  • Supplier Registration and Preselection

    Hi all,
    We are trying to configure Supplier Registration and preselection
    process in SRM:
    When Supplier is filling Registration form then we try to send it but It
    got an error message: "Administration SRM isn’t available"
    What has happened?
    Regards,
    RCV

    Roberto,
    You can find this SUS customizing point in SPRO --> Supplier Relationship Management --> Supplier Self-Services --> Master Data --> Make Settings for the Business Partners:
    - you have to define an admin user ID who will receive mail notifications (newly registered vendors, changes to vendor master data, error during replication).
    - you have to activate the use of UME or not (and UME URL if activated).
    - you have to activate the use of Self-Registration or not
    - you have to define the vendor root where all new prospect will be created, with a default purch org and a default currency.
    - you have to define default values for vendor data (mail notification, tax code).
    Rgds
    Christophe

  • Supplier Registration Process

    Hi,
    I am trying to configure Supplier Registration and preselection process in EBP.
    1. Supplier is filling Registration form and sending the same.
    2. This data is appearing in preselect supplier screen with option to accept and reject or set to NEW.
    3. Manager is accepting the same in preselect screen but he is not getting any indication or message that action is complete. There is no acceptance indication is coming.
    4. Further in preselect screen on clicking supplier link supplier data should appear that is also not happening
    5. While I am going to Manage business partner to convert new  registered to bidder or Vendor than also it is not appearing.
    I have activated all relevent services and all customization is done as per configuration guide.
    What is missing?
    Thanks
    Sanjay 
    Thanks

    Hello Sanjay,
    3. There is no return message when accepting the supplier: its BP status is set to "Accepted" so it disappears from the refreshed list if you have default search criteria 'New'.
    You should find the corresponding Prospect with BP transaction, with 'not released' flag unchecked in status tab.
    By accepting this prospect, you only change its status via function ROS_BUPA_CHANGE_STATUS.
    If there is a supplier directory activated in CCM, then this accepted vendor is sent to CCM, where it becomes selectable via OPI.
    I think this is the only XI message related to this acceptance.
    Otherwise, this accepted prospect is available in SRM/SUS Supplier directory, via OPI --> your step 5
    There is no workflow at the moment.
    4- In supplier prescreening, no additional data is supposed to be displayed (you just changed the prospect status)
    5- if Self registration on SRM client: In SRM transaction Manage Business Partner, enter the new BP ID (got it from prescreening list) or search it and convert it to vendor. Then add all purchasing data, vendor org ID and so on.
    Self registration & SUS are supposed to work on the same client/server, and SRM on another one.
    I guess you are trying to make it work on a all-in-one installation. If not, the prospect remains in SUS and that's why you don't find it in SRM.
    Then see next step:
    You can also access directly to the accepted prospect from all sourcing activities (SOCO, VL, BID), via OPI "catalog". In that case you need purchaser autorisations to create a vendor in SRM automatically from retrive OPI data.
    If SUS activated, an XI message is created to send the vendor to SUS.
    You need to define a new web service in SRM, with type "List of vendors" where you define the vendor root node, and the calling URL:
    http://<server>:<port>/sap/bc/bsp/sap/ros_prescreen/main.do
    The same BSP is used for Supplier Directory, but the display is different.
    Assign this web service ID in org attribute "Catalog ID".
    Rgds
    Christophe

  • Response Questionnaire of Supplier Registration

    Hi all!
    We have a problem with the supplier self registration process...
    After the supplier complete the self registration (BSP ROS_SELF_REG), receives a questionnaire in his mail box. This questionnaire have a button (Send Questionnaire) to response and send back the questionnaire to SRM.
    But our button doesn´t have any effect, because it is a link to nothing (href="#").
    We don´t know if we have to configure something before...
    Can you help us? Thanks in advance!
    Regards,
    Roberto

    HI all.
    I am setting up the Supplier registration via SUS. client 120(SRM), 130(SUS).
    We know the registration form works with the default URL and is sending questionaires from SRM using the service ID in 120. However I have the email forwarding etc for the questionaires response setup on 130 to go to our exchange server and then back to SUS on port 25130... If I try to add parameters to the registration url sap-client=130 it bombs on me and I get this error...
    Error when processing your request
    What has happened?
    The URL http://dp2dca0u.state.pa.us:8001/saP/bc/bsp/sap/ros_self_reg/main.htm was not called due to an error.
    Note
    The following error text was processed in the system DP2 : Parameters required to call function module COM_CATEGORY_READ_TEXT_MULTI are missing
    The error occurred on the application server dp2dca0u_DP2_01 and in the work process 0 .
    The termination type was: ERROR_MESSAGE_STATE
    The ABAP call stack was:
    Function: COM_CATEGORY_READ_TEXT_MULTI of program SAPLCOM_CATEGORY_TEXT_API
    Method: GET_TEXT_FOR_CATEGORIES of program CL_ROS_SURVEY_CUSTOMIZING=====CP
    Method: ONCREATE of program CLO251NVV1MH7YR6J7P0CT3KBE4BDCP
    Method: %_ONCREATE of program CL_O251NVV1MH7YR6J7P0CT3KBE4BDCP
    Method: DO_INIT of program CL_BSP_PAGE===================CP
    Method: GET_PAGE_CONTEXT_CURRENT of program CL_BSP_CONTEXT================CP
    Method: ON_REQUEST_ENTER of program CL_BSP_RUNTIME================CP
    Method: ON_REQUEST of program CL_BSP_RUNTIME================CP
    Method: IF_HTTP_EXTENSION~HANDLE_REQUEST of program CL_HTTP_EXT_BSP===============CP
    Method: EXECUTE_REQUEST_FROM_MEMORY of program CL_HTTP_SERVER================CP
    What can I do?
    If the termination type was RABAX_STATE, then you can find more information on the cause of the termination in the system DP2 in transaction ST22.
    If the termination type was ABORT_MESSAGE_STATE, then you can find more information on the cause of the termination on the application server dp2dca0u_DP2_01 in transaction SM21.
    If the termination type was ERROR_MESSAGE_STATE, then you can search for more information in the trace file for the work process 0 in transaction ST11 on the application server dp2dca0u_DP2_01 . In some situations, you may also need to analyze the trace files of other work processes.
    If you do not yet have a user ID, contact your system administrator.
    Error code: ICF-IE-http -c: 130 -u: SRMSVC -l: E -s: DP2 -i: dp2dca0u_DP2_01 -w: 0 -d: 20060624 -t: 145259 -v: ERROR_MESSAGE_STATE -e:
    HTTP 500 - Internal Server Error
    Your SAP Internet Communication Framework Team
    1.) Am I approaching this right if I want the registration system to be in SUS(130)?
    2.) how do I figure out what these missing parameters are ? and where do I update them?
    Many thanks in advance for any help you can offer.
    regards
    Andrew
    [email protected]

  • Is there a way to change the LUt extension form .CUBE to .cube. on export. TX

    Is there a way to change the LUt extension form .CUBE to .cube. on export with this script in photoshop For MAC:
    Chris Cox wrote:
    The file extensions are written by the export plugin.  (which incidentally has a comment that two studios wanted all caps extensions, but I failed to write down which ones in the comments)
    To change the filenames, you'd want to add something at the end of doExportLUTs() that uses the supplied path and substitutes the desired extensions, then renames the file.
    Thank you
    // Export Color Lookup Tables automation in JavaScript
    // IN_PROGRESS - why can't ColorSync Utility open any profile with a grid of 160 or larger?
    // 150 works, 160 fails -- sent samples in email to Apple on Nov 8, 2013; they are investigating
    // DEFERRED - right to left filenames (Arabic) come out wrong because of appending "RGB" and file extensions
    // This seems to be a bug in JavaScript's handing of strings, not sure we can solve it easily.
    // It might possibly be handled by checking bidi markers in UTF8 stream and adding custom handling for appending text/extensions.
    @@@BUILDINFO@@@ ExportColorLookupTables.jsx 1.0.0.0
    // BEGIN__HARVEST_EXCEPTION_ZSTRING
    <javascriptresource>
    <name>$$$/JavaScripts/ExportColorLookupTables/Menu=Color Lookup Tables...</name>
    <menu>export</menu>
    <enableinfo>true</enableinfo>
    <eventid>9AA9D7D6-C209-494A-CC01-4E7D926DA642</eventid>
    </javascriptresource>
    // END__HARVEST_EXCEPTION_ZSTRING
    #target photoshop
    const appUIState = app.displayDialogs;
    app.displayDialogs = DialogModes.NO; // suppress all app dialogs
    app.bringToFront(); // make Photoshop the frontmost app, just in case
    // on localized builds we pull the $$$/Strings from a .dat file
    $.localize = true;
    // from Terminology.jsx
    const classApplication = app.charIDToTypeID('capp');
    const classProperty = app.charIDToTypeID('Prpr');
    const enumTarget = app.charIDToTypeID('Trgt');
    const eventGet = app.charIDToTypeID('getd');
    const eventSet = app.charIDToTypeID('setd');
    const kcolorSettingsStr = app.stringIDToTypeID("colorSettings");
    const kDither = app.charIDToTypeID('Dthr');
    const keyTo = app.charIDToTypeID('T   ');
    const typeNULL = app.charIDToTypeID('null');
    const typeOrdinal = app.charIDToTypeID('Ordn');
    const kFloatWindowStr = app.stringIDToTypeID("floatWindow");
    const typePurgeItem = app.charIDToTypeID('PrgI');
    const enumClipboard = app.charIDToTypeID('Clpb');
    const eventPurge = app.charIDToTypeID('Prge');
    const keyExportLUT = app.charIDToTypeID( "lut " );
    const keyFilePath = app.charIDToTypeID( 'fpth' );
    const keyDescription = app.charIDToTypeID( 'dscr' );
    const keyCopyright = app.charIDToTypeID( 'Cpyr' );
    const keyDataPoints = app.charIDToTypeID( 'gPts' );
    const keyWriteICC = app.charIDToTypeID( 'wICC' );
    const keyWrite3DL = app.charIDToTypeID( 'w3DL' );
    const keyWriteCUBE = app.charIDToTypeID( 'wCUB' );
    const keyWriteCSP = app.charIDToTypeID( 'wCSP' );
    const kScriptOptionsKey = "9AA9D7D6-C209-494A-CC01-4E7D926DA642"; // same as eventID above
    const sGridMin = 7; // these must match the slider range defined in the dialog layout
    const sGridMax = 256;
    const sGridDefault = 32;
    // our baseline UI configuration info
    var gSaveFilePath = ""; // overwritten by document path
    var gDescription = ""; // overwritten by document name
    var gCopyright = ""; // "Adobe Systems Inc., All Rights Reserved";
    var gGridPoints = sGridDefault;
    var gDoSaveICCProfile = true;
    var gDoSave3DL = true;
    var gDoSaveCUBE = true;
    var gDoSaveCSP = true;
    gScriptResult = undefined;
    // start doing the work...
    main();
    app.displayDialogs = appUIState; // restore original dialog state
    gScriptResult; // must be the last thing - this is returned as the result of the script
    function readOptionsFromDescriptor( d )
      if (!d)
      return;
      if (d.hasKey(keyFilePath))
      gSaveFilePath = d.getString( keyFilePath ); // will be overridden by UI
      if (d.hasKey(keyDescription))
      gDescription = d.getString( keyDescription ); // will be overridden always
      if (d.hasKey(keyCopyright))
      gCopyright = d.getString( keyCopyright );
      if (d.hasKey(keyDataPoints))
      var temp = d.getInteger( keyDataPoints );
      if (temp >= sGridMin && temp <= sGridMax)
      gGridPoints = temp;
      if (d.hasKey(keyWriteICC))
      gDoSaveICCProfile = d.getBoolean( keyWriteICC );
      if (d.hasKey(keyWrite3DL))
      gDoSave3DL = d.getBoolean( keyWrite3DL );
      if (d.hasKey(keyWriteCUBE))
      gDoSaveCUBE = d.getBoolean( keyWriteCUBE );
      if (d.hasKey(keyWriteCSP))
      gDoSaveCSP = d.getBoolean( keyWriteCSP );
    function createDescriptorFromOptions()
      var desc = new ActionDescriptor();
      desc.putString( keyFilePath, gSaveFilePath ); // will be overridden by UI
      desc.putString( keyDescription, gDescription ); // will always be overridden by document name
      desc.putString( keyCopyright, gCopyright );
      desc.putInteger( keyDataPoints, gGridPoints );
      desc.putBoolean( keyWriteICC, gDoSaveICCProfile );
      desc.putBoolean( keyWrite3DL, gDoSave3DL );
      desc.putBoolean( keyWriteCUBE, gDoSaveCUBE );
      desc.putBoolean( keyWriteCSP, gDoSaveCSP );
      return desc;
    function doExportUI()
      // DEFERRED - it might be nice to be able to run without UI
      //  Right now we can't, but someone could modify the script if they so desire
      const sDescription = localize("$$$/AdobeScript/Export3DLUT/Description=Description:");
      const sCopyright = localize("$$$/AdobeScript/Export3DLUT/Copyright=Copyright:");
      const sQuality = localize("$$$/AdobeScript/Export3DLUT/Quality=Quality");
      const sGridPoints = localize("$$$/AdobeScript/Export3DLUT/GridPoints=Grid Points:");
      const sFormatsToSave = localize("$$$/AdobeScript/Export3DLUT/Formats=Formats");
      const sOpenButton = localize("$$$/JavaScripts/psx/OK=OK");
      const sCancelButton = localize("$$$/JavaScripts/psx/Cancel=Cancel");
      const strTextInvalidType = localize("$$$/JavaScripts/Export3DLUT/InvalidType=Invalid numeric value. Default value inserted.");
      const strTextInvalidNum = localize("$$$/JavaScripts/Export3DLUT/InvalidNum=A number between 7 and 256 is required. Closest value inserted.");
      const strNoExportsSelected = localize("$$$/JavaScripts/Export3DLUT/NoExportTypesSelected=No export types were selected.");
      const strExportPrompt = localize("$$$/JavaScripts/Export3DLUT/ExportColorLookup=Export Color Lookup");
      const strUntitledLUT = localize("$$$/JavaScripts/Export3DLUT/UntitledLUTFilename=untitled.lut");
      const sSaveICC = localize("$$$/AdobeScript/Export3DLUT/ICCProfile=ICC Profile");
      // these are not localized, since they refer to file format extensions
      const sSave3DL = "3DL";
      const sSaveCUBE = "CUBE";
      const sSaveCSP = "CSP";
      // strings similar to JPEG quality
      const sPoor = localize("$$$/AdobeScript/Export3DLUT/Poor=Poor");
      const sLow = localize("$$$/AdobeScript/Export3DLUT/Low=Low");
      const sMedium = localize("$$$/AdobeScript/Export3DLUT/Medium=Medium");
      const sHigh = localize("$$$/AdobeScript/Export3DLUT/High=High");
      const sMaximum = localize("$$$/AdobeScript/Export3DLUT/Maximum=Maximum");
      const ui = // dialog resource object
      "dialog { \
      orientation: 'row', \
      gp: Group { \
      orientation: 'column', alignment: 'fill', alignChildren: 'fill', \
      description: Group { \
      orientation: 'row', alignment: 'fill', alignChildren: 'fill', \
      st: StaticText { text:'Description:' }, \
      et: EditText { characters: 30, properties:{multiline:false}, text:'<your description here>' } \
      copyright: Group { \
      orientation: 'row', alignment: 'fill', alignChildren: 'fill', \
      st: StaticText { text:'Copyright:' }, \
      et: EditText { characters: 30, properties:{multiline:false}, text:'<your copyright here>' } \
      qual: Panel { \
      text: 'Quality', \
      orientation: 'column', alignment: 'fill', alignChildren: 'fill', \
      g2: Group { \
      st: StaticText { text:'Grid Points:' }, \
      et: EditText { characters:4, justify:'right' } \
      drp: DropDownList {alignment:'right'} \
      sl: Slider { minvalue:7, maxvalue:256, value: 32 }, \
      options: Panel { \
      text: 'Formats', \
      orientation: 'column', alignment: 'fill', alignChildren: 'left', \
      ck3DL: Checkbox { text:'3DL', value:true }, \
      ckCUBE: Checkbox { text:'CUBE', value:true } \
      ckCSP: Checkbox { text:'CSP', value:true } \
      ckICC: Checkbox { text:'ICC Profile', value:true } \
      gButtons: Group { \
      orientation: 'column', alignment: 'top', alignChildren: 'fill', \
      okBtn: Button { text:'Ok', properties:{name:'ok'} }, \
      cancelBtn: Button { text:'Cancel', properties:{name:'cancel'} } \
      const titleStr = localize("$$$/AdobeScript/Export3DLUT/DialogTitle/ExportColorLookupTables=Export Color Lookup Tables");
      var win = new Window (ui, titleStr ); // new window object with UI resource
        // THEORETICALLY match our dialog background color to the host application
        win.graphics.backgroundColor = win.graphics.newBrush (win.graphics.BrushType.THEME_COLOR, "appDialogBackground");
      // poor, low, medium, high, max
      var MenuQualityToGridPoints = [ 8, 16, 32, 64, 256 ];
      function GridPointsToQualityMenuIndex( num )
      var menu = MenuQualityToGridPoints;
      var menuItems = menu.length;
      if (num <= menu[0])
      return 0;
      if (num >= menu[ menuItems-1 ])
      return (menuItems-1);
      for (var i = 0; i < (menuItems-1); ++i)
      if ((num >= menu[i]) && (num < menu[i+1]))
      return i;
      return 0; // just in case of a logic failure
      // insert our localized strings
      var drop = win.gp.qual.g2.drp; // for easier typing
      drop.add('item', sPoor ); // 0
      drop.add('item', sLow ); // 1
      drop.add('item', sMedium ); // 2
      drop.add('item', sHigh ); // 3
      drop.add('item', sMaximum ); // 4
      drop.selection = drop.items[2]; // Medium
      win.gp.description.st.text = sDescription;
      win.gp.copyright.st.text = sCopyright;
      win.gp.qual.text = sQuality;
      win.gp.qual.g2.st.text = sGridPoints;
      win.gp.options.text = sFormatsToSave;
      win.gp.options.ck3DL.text = sSave3DL;
      win.gp.options.ckCUBE.text = sSaveCUBE;
      win.gp.options.ckCSP.text = sSaveCSP;
      win.gp.options.ckICC.text = sSaveICC;
      win.gButtons.okBtn.text = sOpenButton;
      win.gButtons.cancelBtn.text = sCancelButton;
      // set starting parameters
      win.gp.description.et.text = gDescription;
      win.gp.copyright.et.text = gCopyright;
      win.gp.options.ckICC.value = gDoSaveICCProfile;
      win.gp.options.ck3DL.value = gDoSave3DL;
      win.gp.options.ckCUBE.value = gDoSaveCUBE;
      win.gp.options.ckCSP.value = gDoSaveCSP;
      // global flag/hack to keep the UI pretty
      var gGlobalPreventChanges = false;
      with (win.gp.qual)
      sl.value = gGridPoints;
      g2.et.text = gGridPoints;
      drop.selection = drop.items[ GridPointsToQualityMenuIndex(gGridPoints) ];
      // global flag is ugly, but recursive change calls are uglier
      g2.et.onChange = function () {  if (gGlobalPreventChanges) { return; }
      gGlobalPreventChanges = true;
      var val = Number(this.text);
      this.parent.parent.sl.value = val;
      drop.selection = drop.items[ GridPointsToQualityMenuIndex(val) ];
      gGlobalPreventChanges = false; };
      sl.onChanging = function () {   if (gGlobalPreventChanges) { return; }
      gGlobalPreventChanges = true;
      var val = Math.floor(this.value);
      this.parent.g2.et.text = val;
      drop.selection = drop.items[ GridPointsToQualityMenuIndex(val) ];
      gGlobalPreventChanges = false; };
      // DEFERRED - we should also set the value if the same menu item is selected again (reset)
      // but the JSX toolkit doesn't support that
      drop.onChange = function()
      if (gGlobalPreventChanges) { return; }
      gGlobalPreventChanges = true;
      var theSelection = this.selection.text;
      if (theSelection != null) { // only change if selection made
      var theSelectionIndex = this.selection.index;
      var newGridPoints = MenuQualityToGridPoints[ theSelectionIndex ];
      win.gp.qual.g2.et.text = newGridPoints;
      win.gp.qual.sl.value = newGridPoints;
      gGlobalPreventChanges = false;
      win.onShow = function ()
      this.qual.sl.size.width = 128;
      this.layout.layout(true);
      win.gButtons.cancelBtn.onClick = function () { this.window.close(2); };
      // validate inputs when the user hits OK
        var gInAlert = false;
      win.gButtons.okBtn.onClick = function ()
      if (gInAlert == true)
      gInAlert = false;
      return;
      var gridText = win.gp.qual.g2.et.text;
      var w = Number(gridText);
      var inputErr = false;
      if ( isNaN( w ) )
      if ( DialogModes.NO != app.playbackDisplayDialogs )
      gInAlert = true;
      alert( strTextInvalidType );
      gInAlert = false;
      win.gp.qual.g2.et.text = sGridDefault;
      win.gp.qual.sl.value = sGridDefault;
      drop.selection = drop.items[ GridPointsToQualityMenuIndex(sGridDefault) ];
      return false;
      if ( (w < sGridMin) || (w > sGridMax) )
      if ( DialogModes.NO != app.playbackDisplayDialogs )
      gInAlert = true;
      alert( strTextInvalidNum );
      gInAlert = false;
      if ( w < sGridMin)
      inputErr = true;
      drop.selection = drop.items[ GridPointsToQualityMenuIndex(sGridMin) ];
      win.gp.qual.g2.et.text = sGridMin;
      win.gp.qual.sl.value = sGridMin;
      return false;
      if ( w > sGridMax)
      inputErr = true;
      drop.selection = drop.items[ GridPointsToQualityMenuIndex(sGridMax) ];
      win.gp.qual.g2.et.text = sGridMax;
      win.gp.qual.sl.value = sGridMax;
      return false;
      if (inputErr == false)
      win.close(true);
      return;
      win.center(); // move to center the dialog
      var ret = win.show();  // dialog display
      if (2 == ret)
      return false; // user cancelled
      // user hit OK, copy values from dialog
      gDescription = win.gp.description.et.text;
      gCopyright = win.gp.copyright.et.text;
      gGridPoints = win.gp.qual.sl.value;
      gDoSave3DL = win.gp.options.ck3DL.value;
      gDoSaveCUBE = win.gp.options.ckCUBE.value;
      gDoSaveCSP = win.gp.options.ckCSP.value;
      gDoSaveICCProfile = win.gp.options.ckICC.value;
      // if no files are going to be saved, then we have zero work to do
      if ((false == gDoSaveICCProfile) && (false == gDoSave3DL) &&
      (false == gDoSaveCUBE) && (false == gDoSaveCSP) )
      // tell the user that no formats were selected
      alert( strNoExportsSelected );
      gScriptResult = 'cancel'; // quit, returning 'cancel' (dont localize) makes the actions palette not record our script
      return false;
      // prompt user for directory and output base filename
      // default to directory and filename of current document
      var currentDocumentPath
      try
      // if the file has no path (not saved), then this throws
      var documentPath = app.activeDocument.fullName.fsName; // Get the OS friendly file path and name
      documentPath = documentPath.replace(/\....$/,''); // remove extension, if there is one
      documentPath = documentPath + ".lut"; // add dummy extension
      currentDocumentPath = File ( documentPath );
      catch (e)
      // if there was no document path, default to user's home directory
      var defaultName = "~/" + strUntitledLUT;
      currentDocumentPath = File(defaultName);
      var fname = currentDocumentPath.saveDlg(strExportPrompt);
      if (fname == null)
      return false;
      gSaveFilePath = fname.fsName;
      return true;
    function doExportLUTs( path )
      const keyUsing     = charIDToTypeID( 'Usng' );
      const eventExport = charIDToTypeID( 'Expr' );
      var desc = new ActionDescriptor();
      var desc2 = new ActionDescriptor();
      desc2.putString( keyFilePath, path );
      desc2.putString( keyDescription, gDescription );
      desc2.putInteger( keyDataPoints, gGridPoints );
      // assemble the full copyright string, if needed
      var copyrightAssembled = gCopyright;
      if (gCopyright != "")
      var theDate = new Date();
      // the year is from 1900 ????
      var theYear = (theDate.getYear() + 1900).toString();
      // Localization team says to just use the year
      var dateString = theYear;
      copyrightAssembled = localize("$$$/JavaScripts/Export3DLUT/Copyright=(C) Copyright ") + dateString + " " + gCopyright;
      desc2.putString( keyCopyright, copyrightAssembled );
      // select output format
      desc2.putBoolean( keyWriteICC, gDoSaveICCProfile );
      desc2.putBoolean( keyWrite3DL, gDoSave3DL );
      desc2.putBoolean( keyWriteCUBE, gDoSaveCUBE );
      desc2.putBoolean( keyWriteCSP, gDoSaveCSP );
        desc.putObject( keyUsing, keyExportLUT, desc2 );
      try
      var resultDesc = executeAction( eventExport, desc, DialogModes.NO );
      catch (e)
      if ( e.number != 8007 ) { // don't report error on user cancel
      var str = localize("$$$/JavaScripts/Export3DLUT/ExportLUTFailed=Unable to run the Export Color Lookup plugin because ");
      alert( str + e + " : " + e.line );
      gScriptResult = 'cancel'; // quit, returning 'cancel' (dont localize) makes the actions palette not record our script
      return false;
      return true;
    function doRenderGrid( points )
      // call the grid rendering plugin to do the work
        const keyRenderGrid = charIDToTypeID( "3grd" );
      const keyDataPoints2 = charIDToTypeID( 'grdP' );
      var args = new ActionDescriptor();
        args.putInteger( keyDataPoints2, points);
      try
      var result = executeAction( keyRenderGrid, args, DialogModes.NO );
      catch (e)
      if ( e.number != 8007 ) { // don't report error on user cancel
      var str = localize("$$$/JavaScripts/Export3DLUT/RenderGridFailed=Unable to render color grid because ");
      alert( str + e + " : " + e.line );
      gScriptResult = 'cancel'; // quit, returning 'cancel' (dont localize) makes the actions palette not record our script
      return false;
      return true;
    function resizeDocumentInPixels( width, height )
      var myDocument = app.activeDocument;
      var originalRulerUnits = app.preferences.rulerUnits;
      app.preferences.rulerUnits = Units.PIXELS;
      myDocument.resizeCanvas( width, height, AnchorPosition.MIDDLECENTER)
      app.preferences.rulerUnits = originalRulerUnits;
    function GetColorSettings()
      var desc1 = new ActionDescriptor();
      var ref1 = new ActionReference();
      ref1.putProperty( classProperty, kcolorSettingsStr );
      ref1.putEnumerated( classApplication, typeOrdinal, enumTarget );
      desc1.putReference( typeNULL, ref1 );
      var result = executeAction( eventGet, desc1, DialogModes.NO );
      var desc2 = result.getObjectValue( kcolorSettingsStr );
      return desc2;
    function GetColorConversionDitherState()
      var settings = GetColorSettings();
      if (settings.hasKey(kDither))
      return settings.getBoolean( kDither );
      else
      return null;
    function ConvertTo16Bit()
      const eventConvertMode = charIDToTypeID( 'CnvM' );
      const keyDepth = charIDToTypeID( 'Dpth' );
      var modeDesc16Bit = new ActionDescriptor();
      modeDesc16Bit.putInteger( keyDepth, 16 );
      var result = executeAction( eventConvertMode, modeDesc16Bit, DialogModes.NO );
    // state = true or false
    function SetColorConversionDither( state )
      var desc1 = new ActionDescriptor();
      var ref1 = new ActionReference();
      ref1.putProperty( classProperty, kcolorSettingsStr );
      ref1.putEnumerated( classApplication, typeOrdinal, enumTarget );
      desc1.putReference( typeNULL, ref1 );
      var desc2 = new ActionDescriptor();
      desc2.putBoolean( kDither, state );
      desc1.putObject( keyTo, kcolorSettingsStr, desc2 );
      executeAction( eventSet, desc1, DialogModes.NO );
    function PurgeClipboard()
      var desc1 = new ActionDescriptor();
      desc1.putEnumerated( typeNULL, typePurgeItem, enumClipboard );
      var result = executeAction( eventPurge, desc1, DialogModes.NO );
    // This helps us avoid resizing existing document views in tabbed document mode.
    // This is new functionality, and will not work in older Photoshop versions.
    function MoveDocumentToNewWindow()
      var desc1 = new ActionDescriptor();
      var result = executeAction( kFloatWindowStr, desc1, DialogModes.NO );
    function main()
      try
      var tempDoc = null;
      var tempDoc2 = null;
      // do basic troubleshooting first
      // make sure there is a document
      if (!app.activeDocument)
        gScriptResult = 'cancel'; // quit, returning 'cancel' (dont localize) makes the actions palette not record our script
      return;
      // check the document mode
      var mode = app.activeDocument.mode;
      if (mode != DocumentMode.RGB
      && mode != DocumentMode.LAB
      && mode != DocumentMode.CMYK)
      var str = localize("$$$/JavaScripts/Export3DLUT/UnsupportedColorMode=Could not export Color Lookup Tables because only RGB, LAB, and CMYK color modes are supported.");
      alert(str);
        gScriptResult = 'cancel'; // quit, returning 'cancel' (dont localize) makes the actions palette not record our script
      return;
      // check the document depth, for safety
      var depth = app.activeDocument.bitsPerChannel; // an object, not a number - why? I have no idea...
      var bitsPerChannel = 1;
      if (depth == BitsPerChannelType.EIGHT)
      bitsPerChannel = 8;
      else if (depth == BitsPerChannelType.SIXTEEN)
      bitsPerChannel = 16;
      else if (depth == BitsPerChannelType.THIRTYTWO)
      bitsPerChannel = 32;
      else
      var str = localize("$$$/JavaScripts/Export3DLUT/UnsupportedImageDepth=Could not export Color Lookup Tables because only 8, 16, and 32 bits/channel are supported.");
      alert(str);
        gScriptResult = 'cancel'; // quit, returning 'cancel' (dont localize) makes the actions palette not record our script
      return;
      // Check layer types: background plus adjustments only
      // For now, don't check each layer - a multiply solid layer still works as a color adjustment, as does selective blending
      // Users will get odd results from other layer types (layer masks, pixel layers, etc.)
      try
      app.activeDocument.backgroundLayer.visible = true;
      catch (e)
      if (activeDocument.layers.length == 1)
      alert( localize("$$$/JavaScripts/Export3DLUT/NoAdjustmentLayers=Could not export Color Lookup Tables because this document has no adjustment layers.") );
      else
      alert( localize("$$$/JavaScripts/Export3DLUT/NoBackground=Could not export Color Lookup Tables because this document has no background.") );
        gScriptResult = 'cancel'; // quit, returning 'cancel' (dont localize) makes the actions palette not record our script
      return;
      // look for last used params via Photoshop registry, getCustomOptions will throw if none exist
      try
      var desc = app.getCustomOptions(kScriptOptionsKey);
      readOptionsFromDescriptor( desc );
      catch(e)
      // it's ok if we don't have any existing options, continue with defaults
      // set some values from the document
      gDescription = app.activeDocument.name;
      // ask the user for options, bail if they cancel at any point
      if ( doExportUI() == false)
        gScriptResult = 'cancel'; // quit, returning 'cancel' (dont localize) makes the actions palette not record our script
      return;
      // we're good to go, so save our parameters for next time
      app.putCustomOptions(kScriptOptionsKey, createDescriptorFromOptions() );
      // remove file extension from filePath, if there is one
      gSaveFilePath = gSaveFilePath.replace(/\....$/,'');
      // calculate the size of image we need
      var width = gGridPoints * gGridPoints;
      var height = gGridPoints;
      if (mode == DocumentMode.CMYK)
      height = gGridPoints*gGridPoints;
      // duplicate the user document so we don't mess it up in any way
      tempDoc = app.activeDocument.duplicate("temporary");
      // make the temporary document active
      app.activeDocument.name = tempDoc;
      // to avoid resizing existing document views in tabbed mode
      MoveDocumentToNewWindow();
      // convert 8 bit documents to 16 bit/channel for improved quality of merged adjustments
      if (bitsPerChannel == 8)
      ConvertTo16Bit();
      depth = BitsPerChannelType.SIXTEEN;
      // resize the temporary canvas to our target size
      resizeDocumentInPixels( width, height )
      // select background layer
      tempDoc.activeLayer = tempDoc.backgroundLayer;
      // render lookup base grid
      var worked = doRenderGrid( gGridPoints );
      if (worked != true)
      tempDoc.close( SaveOptions.DONOTSAVECHANGES );
      return; // error should have already been shown, and there is not much we can do
      // do not flatten here -- the export automatically gets flattened data
      // and we may need layers for LAB->RGB conversion below
      // export the chosen formats
      worked = doExportLUTs( gSaveFilePath );
      if (worked != true)
      tempDoc.close( SaveOptions.DONOTSAVECHANGES );
      return; // error should have already been shown, and there is not much we can do
      // for LAB documents to export 3DLUT (which are inherently RGB), we have to do additional work
      // As a bonus, this works for CMYK as well!
      if ( mode != DocumentMode.RGB )
      var filePath = gSaveFilePath + "RGB";
      var oldDitherState = GetColorConversionDitherState();
      try
      SetColorConversionDither(false);
      const targetProfileName = "sRGB IEC61966-2.1";
      // new document temp2 in sRGB, matching depth of original
      var originalRulerUnits = app.preferences.rulerUnits;
      app.preferences.rulerUnits = Units.PIXELS;
      tempDoc2 = app.documents.add( width, gGridPoints, 72, "temp2",
      NewDocumentMode.RGB, DocumentFill.WHITE,
      1.0, depth, targetProfileName );
      app.preferences.rulerUnits = originalRulerUnits;
      // make the new doc active
      app.activeDocument.name = tempDoc2;
      // to avoid resizing existing document views in tabbed mode
      MoveDocumentToNewWindow();
      // insert grid
      worked = doRenderGrid( gGridPoints );
      if (worked == true)
      tempDoc2.selection.selectAll();
      tempDoc2.activeLayer = tempDoc2.backgroundLayer;
      tempDoc2.selection.copy();
      tempDoc2.close( SaveOptions.DONOTSAVECHANGES );
      tempDoc2 = null;
      // make sure temp1 is active
      app.activeDocument.name = tempDoc;
      // resize for RGB grid
      resizeDocumentInPixels( width, gGridPoints );
      tempDoc.selection.selectAll();
      tempDoc.paste(true);
      PurgeClipboard(); // so we don't leave an odd, large item on the clipboard
      tempDoc.selection.deselect();
      tempDoc.flatten();
      // convert temp1 to sRGB
      tempDoc.convertProfile( targetProfileName, Intent.RELATIVECOLORIMETRIC, true, false );
      // export the chosen formats
      worked = doExportLUTs( filePath );
      // at this point we still have to clean up, even if the call failed, so fall through
      else
      tempDoc2.close( SaveOptions.DONOTSAVECHANGES );
      catch (e)
      if ( e.number != 8007 ) { // don't report error on user cancel
      var str = localize("$$$/JavaScripts/Export3DLUT/UnableToConvertRGB=Unable to convert image to RGB because ");
      alert( str + e + " : " + e.line );
      if (tempDoc2 != null) tempDoc2.close( SaveOptions.DONOTSAVECHANGES );
      gScriptResult = 'cancel'; // quit, returning 'cancel' (dont localize) makes the actions palette not record our script
      // always reset the dither state
      SetColorConversionDither( oldDitherState );
      PurgeClipboard(); // so we don't leave an odd, large item on the clipboard
      } // if not RGB
      // always close temp document without saving
      tempDoc.close( SaveOptions.DONOTSAVECHANGES );
      catch (e)
      if ( e.number != 8007 ) { // don't report error on user cancel
      var str = localize("$$$/JavaScripts/Export3DLUT/UnableToExport=Unable to export LUT because ");
      alert( str + e + " : " + e.line );
      // always close temp document without saving
      if (tempDoc != null) tempDoc.close( SaveOptions.DONOTSAVECHANGES );
      gScriptResult = 'cancel'; // quit, returning 'cancel' (dont localize) makes the actions palette not record our script

    Hi blabla12345,
    (untested and without warranty)
    replace this line:
    const sSaveCUBE = "CUBE";
    with this:
    const sSaveCUBE = "cube";
    Have fun

  • Supplier Registration in EBP

    I have done all settings as per configuration guide for supplier registration in Strategic sourcing scenario.
    When the supplier regiters himself, His registration entry is visible in the screen suppliers application in Buyers account. Here we can also see the registration details with the hyperlink to the registration form.
    However in our case the registration form hyperlink is not seen.
    Also when the suppliers sends filled questinnair, its not reaching to mour SRM system.
    Please suggest, if I am missing any settings
    Prashant

    hi,
    please provide contents of this configuration guide. i'm working on th same. may be i can help u where u mis out.
    regards,
    sashi.

  • Approve supplier registration for a category

    Dear Expert,
    We are working with the supplier registration at the SRM 05.
    Is there a way to approve suppliers and change it status from "new" to "approve" for a Specific category?
    Thank's,
    Yaron.

    Hi Yaron,
    You can accept the supplier as a whole, not for 1 specific category.
    However to achieve your objective you could enter the approved category in business partner tab (category), so that you know for which category the supplier is accepted.
    Regards,
    Nikhil

  • Supplier Registration Table

    Hello,
    We have created our own questionnaires at IMG SRM + Supplier Registration + Basic Settings + Create / Change Questionnaire.
    Where are loaded this data in SRM?. Which tables?.
    Thanks

    Hi
    <b>Please refer to following SRM Tables</b>
    Table Name           Short text                                                                               
    TUWS_DATA            XML Data                                                      
    TUWS_DATAT           Descriptions to TUWS_DATA                                     
    TUWS_FORMSERVICE     XML Data                                                      
    TUWS_FORMSERVICT     Descriptions to TUWS_FORMSERVICE                              
    TUWS_LDAPKEY         Assignment LDAP Server <-> Technical Key and Variant          
    TUWS_LDAPKEYLANG     Language Table for TUWS_LDAPKEY                               
    TUWS_LDAPVARIANT     LDAP Server Parameter Variants                                
    TUWS_LDAPVARLANG     Language Table for TUWS_LDAPVARIANT                           
    TUWS_SURVEY          Survey                                                        
    TUWS_SURVEYT         Descriptions for TUWS_SURVEY                                  
    TUWS_SURVEY_LOG      Survey Log                                                    
    TUWS_SURVEY_PUB      Survey Publishing                                             
    TUWS_TARGETHIER      XML Data                                                      
    TUWS_TARGETHIERT     Descriptions for TUWS_TARGETHIER                              
    TUWS_TAROBJ          Survey: Recipients                                            
    TUWS_TAROBJ_ATTR     Survey: Recipient Attributes  
    Hope this will help.
    Please reward suitable points.
    Regards
    - Atul

  • Desperate for help: ADDT registration form

    New to ADTT and back again with another, more urgent problem.
    I have used ADDT to create a registration page, using UPDATE instead of INSERT (this is necessary because the users are already in our system as contacts).  To accomplish this I had to do some hand coding and I fear I may have gone awry.  Initially I kept getting a blank page with the message "error: internal server" message when the page loaded...currently I get "Fatal error: Call to a member function addField() on a non-object in /home/agciorg/public_html/events/2009/259/users_Registration.php on line 33."  Now I can no longer open the registration page in Dreamweaver -- freezes DW everytime.  So I'm trying to edit in Text Edit to get it back to a functioning page.  I've already rebuilt the page from scratch twice trying to get things to work and I'm on a major time crunch and just can't afford to do it again.  Below is the current code (I've also attached the php file as a .txt)...any help in resolving my issue would be much, MUCH appreciated!
    <?php require_once('../../../Connections/AGCI.php'); ?>
    <?php
    // Load the common classes
    require_once('../../../includes/common/KT_common.php');
    // Load the tNG classes
    require_once('../../../includes/tng/tNG.inc.php');
    // Make a transaction dispatcher instance
    $tNGs = new tNG_dispatcher("../../../");
    // Make unified connection variable
    $conn_AGCI = new KT_connection($AGCI, $database_AGCI);
    // Start trigger
    $formValidation = new tNG_FormValidation();
    $formValidation->addField("UserFirstName", true, "text", "", "", "", "");
    $formValidation->addField("UserLastName", true, "text", "", "", "", "");
    $formValidation->addField("UserTitle", true, "text", "", "", "", "");
    $formValidation->addField("UserOrganization", true, "text", "", "", "", "");
    $formValidation->addField("UserEmail", true, "text", "email", "", "", "");
    $formValidation->addField("UserPassword", true, "text", "", "", "", "");
    $formValidation->addField("UserPhone", true, "text", "", "", "", "");
    $formValidation->addField("UserAddress", true, "text", "", "", "", "");
    $formValidation->addField("UserCity", true, "text", "", "", "", "");
    $formValidation->addField("UserState", true, "text", "", "", "", "");
    $formValidation->addField("UserZip", true, "text", "zip_generic", "", "", "");
    $formValidation->addField("UserCountry", true, "text", "", "", "", "");
    $formValidation->addField("UserExpertise", true, "text", "", "", "", "");
    $formValidation->addField("UserArrivalDate", true, "date", "", "", "", "");
    $formValidation->addField("UserDepartureDate", true, "date", "", "", "", "");
    $formValidation1->addField("UserPassword", true, "text", "", "", "", "");
    $tNGs->prepareValidation($formValidation);
    // End trigger
    //start Trigger_CheckPasswords trigger
    //remove this line if you want to edit the code by hand
    function Trigger_CheckPasswords(&$tNG) {
      $myThrowError = new tNG_ThrowError($tNG);
      $myThrowError->setErrorMsg("Passwords do not match.");
      $myThrowError->setField("UserPassword");
      $myThrowError->setFieldErrorMsg("The two passwords do not match.");
      return $myThrowError->Execute();
    //end Trigger_CheckPasswords trigger
    //start Trigger_WelcomeEmail trigger
    //remove this line if you want to edit the code by hand
    function Trigger_WelcomeEmail(&$tNG) {
      $emailObj = new tNG_Email($tNG);
      $emailObj->setFrom("{KT_defaultSender}");
      $emailObj->setTo("{UserEmail}");
      $emailObj->setCC("");
      $emailObj->setBCC("[email protected]");
      $emailObj->setSubject("Registration Confirmation");
      //FromFile method
      $emailObj->setContentFile("includes/mailtemplates/welcome.html");
      $emailObj->setEncoding("ISO-8859-1");
      $emailObj->setFormat("HTML/Text");
      $emailObj->setImportance("Normal");
      return $emailObj->Execute();
    //end Trigger_WelcomeEmail trigger
    //start Trigger_ImageUpload trigger
    //remove this line if you want to edit the code by hand
    function Trigger_ImageUpload(&$tNG) {
      $uploadObj = new tNG_ImageUpload($tNG);
      $uploadObj->setFormFieldName("photo");
      $uploadObj->setDbFieldName("UserPhoto");
      $uploadObj->setFolder("../../../dB/ScientistPhotos/");
      $uploadObj->setResize("true", 200, 0);
      $uploadObj->setMaxSize(1500);
      $uploadObj->setAllowedExtensions("gif, jpg, jpeg, png");
      $uploadObj->setRename("custom");
      $uploadObj->setRenameRule("{rsUsers.UserFirstName}_{rsUsers.UserLastName}");
      return $uploadObj->Execute();
    //end Trigger_ImageUpload trigger
    if (!function_exists("GetSQLValueString")) {
    function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
      $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
      $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
      switch ($theType) {
        case "text":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;  
        case "long":
        case "int":
          $theValue = ($theValue != "") ? intval($theValue) : "NULL";
          break;
        case "double":
          $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
          break;
        case "date":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;
        case "defined":
          $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
          break;
      return $theValue;
    mysql_select_db($database_AGCI, $AGCI);
    $query_rsUsers = "SELECT * FROM users";
    $rsUsers = mysql_query($query_rsUsers, $AGCI) or die(mysql_error());
    $row_rsUsers = mysql_fetch_assoc($rsUsers);
    $totalRows_rsUsers = mysql_num_rows($rsUsers);
    // Make an update transaction instance
    $UserRegistration = new tNG_update($conn_AGCI);
    $tNGs->addTransaction($UserRegistration);
    // Register triggers
    $UserRegistration->registerTrigger("STARTER", "Trigger_Default_Starter", 1, "POST", "KT_Update1");
    $UserRegistration->registerTrigger("END", "Trigger_Default_Redirect", 99, "redirect.php");
    $UserRegistration->registerTrigger("BEFORE", "Trigger_Default_FormValidation", 10, $formValidation);
    $UserRegistration->registerTrigger("AFTER", "Trigger_ImageUpload", 97);
    $UserRegistration->registerConditionalTrigger("{POST.UserPassword} != {POST.re_UserPassword}", "BEFORE", "Trigger_CheckPasswords", 50);
    $UserRegistration->registerTrigger("AFTER", "Trigger_WelcomeEmail", 60);
    // Add columns
    $UserRegistration->setTable("users");
    $UserRegistration->addColumn("UserContactType", "STRING_TYPE", "POST", "UserContactType");
    $UserRegistration->addColumn("UserEventID", "NUMERIC_TYPE", "POST", "UserEventID");
    $UserRegistration->addColumn("UserFirstName", "STRING_TYPE", "POST", "UserFirstName");
    $UserRegistration->addColumn("UserLastName", "STRING_TYPE", "POST", "UserLastName");
    $UserRegistration->addColumn("UserTitle", "STRING_TYPE", "POST", "UserTitle");
    $UserRegistration->addColumn("UserDepartment", "STRING_TYPE", "POST", "UserDepartment");
    $UserRegistration->addColumn("UserOrganization", "STRING_TYPE", "POST", "UserOrganization");
    $UserRegistration->addColumn("UserPhone", "STRING_TYPE", "POST", "UserPhone");
    $UserRegistration->addColumn("UserCellPhone", "STRING_TYPE", "POST", "UserCellPhone");
    $UserRegistration->addColumn("UserAddress", "STRING_TYPE", "POST", "UserAddress");
    $UserRegistration->addColumn("UserAddress2", "STRING_TYPE", "POST", "UserAddress2");
    $UserRegistration->addColumn("UserCity", "STRING_TYPE", "POST", "UserCity");
    $UserRegistration->addColumn("UserState", "STRING_TYPE", "POST", "UserState");
    $UserRegistration->addColumn("UserZip", "STRING_TYPE", "POST", "UserZip");
    $UserRegistration->addColumn("UserCountry", "STRING_TYPE", "POST", "UserCountry");
    $UserRegistration->addColumn("UserWebsite", "STRING_TYPE", "POST", "UserWebsite");
    $UserRegistration->addColumn("UserExpertise", "STRING_TYPE", "POST", "UserExpertise");
    $UserRegistration->addColumn("UserBio", "STRING_TYPE", "POST", "UserBio");
    $UserRegistration->addColumn("UserPhoto", "FILE_TYPE", "POST", "UserPhoto");
    $UserRegistration->addColumn("UserArrivalDate", "DATE_TYPE", "POST", "UserArrivalDate");
    $UserRegistration->addColumn("UserDepartureDate", "DATE_TYPE", "POST", "UserDepartureDate");
    $UserRegistration->addColumn("UserUnsureTravelDates", "CHECKBOX_YN_TYPE", "POST", "UserUnsureTravelDates");
    $UserRegistration->addColumn("User#AdultGuests", "NUMERIC_TYPE", "POST", "User_AdultGuests");
    $UserRegistration->addColumn("UserAdultGuestNames", "STRING_TYPE", "POST", "UserAdultGuestNames");
    $UserRegistration->addColumn("User#ChildGuests", "NUMERIC_TYPE", "POST", "User_ChildGuests");
    $UserRegistration->addColumn("UserChildGuestNames", "STRING_TYPE", "POST", "UserChildGuestNames");
    $UserRegistration->addColumn("UserUnsureGuests", "CHECKBOX_YN_TYPE", "POST", "UserUnsureGuests");
    $UserRegistration->addColumn("UserBookRoom", "CHECKBOX_YN_TYPE", "POST", "UserBookRoom");
    $UserRegistration->addColumn("UserComments", "STRING_TYPE", "POST", "UserComments");
    $UserRegistration->addColumn("UserRegistrationDate", "DATE_TYPE", "POST", "UserRegistrationDate");
    $UserRegistration->addColumn("UserEmail", "STRING_TYPE", "POST", "UserEmail", "{SESSION.kt_login_user}");
    $UserRegistration->addColumn("UserPassword", "STRING_TYPE", "POST", "UserPassword");
    // Make an update transaction instance
    $UsersRegistration = new tNG_update($conn_AGCI);
    $tNGs->addTransaction($UsersRegistration);
    // Execute all the registered transactions
    $tNGs->executeTransactions();
    // Get the transaction recordset
    $rsusers = $tNGs->getRecordset("users");
    $row_rsusers = mysql_fetch_assoc($rsusers);
    $totalRows_rsusers = mysql_num_rows($rsusers);
    ?>
    <!-----------------begin registration form----------------->
    <div id="RegistrationContainer">
          <form method="post" name="RegistrationForm" id="RegistrationForm" action="<?php echo KT_escapeAttribute(KT_getFullUri()); ?>"> 
            <table width="515" border="0" align="right">
    <tr>
      <td height="135" colspan="2" valign="top" scope="col">
          <?php
    echo $tNGs->getErrorMsg();
    ?>
                    <h1 align="left">Registration Form</h1>
      <br>
        <span class="style5">Please read the logistics information prior to completing the registration form.</span><br />
           There are a limited number of spots available in this workshop.  To secure a spot, please fill out this registration form to the best of your ability as soon as possible.  Please notify AGCI of any subsequent changes to the information submitted below.
                    </td>
    </tr>
          <tr>
            <td height="37" colspan="2" scope="col"><strong>Create a Password</strong></td>
           </tr>
    <tr>
            <td height="53" colspan="2" valign="top" scope="col">
    <table cellpadding="2" cellspacing="0" class="KT_tngtable">
      <tr>
    <td width="127" class="KT_th"><label for="UserPassword">Password:</label></td>
    <td width="248">
    <input type="password" name="UserPassword" id="UserPassword" value="" size="32" />
    <?php echo $tNGs->displayFieldHint("UserPassword");?>
    <?php echo $tNGs->displayFieldError("users", "UserPassword"); ?>
    </td>
    </tr>
    <tr>
    <td class="KT_th"><label for="re_UserPassword">Re-type Password:</label></td>
    <td>
    <input type="password" name="re_UserPassword" id="re_UserPassword" value="" size="32" />
    </td>
    </tr>
      <tr>
    <td class="KT_th"><label for="UserEmail">Email (username):</label></td>
    <td>
    <input type="text" name="UserEmail" id="UserEmail" value="<?php echo $_SESSION['kt_login_user']; ?>" size="32" />
    <?php echo $tNGs->displayFieldHint("UserEmail");?>
    <?php echo $tNGs->displayFieldError("users", "UserEmail"); ?>
    </td>
    </tr>
    </table>
    </td>
           </tr>
    <tr>
            <td height="37" colspan="2" scope="col"><strong>Contact/Personal Information</strong></td>
           </tr>
    <tr>
    <td width="229" height="323" align="right" valign="top" scope="col">
    <input name="UserContactType" type="hidden" value="Scientist">
    <input name="UserEventID" type="hidden" value="259"> <!---NEEDS TO BE CHANGED FOR EACH WORKSHOP--->
    <?php $date = getdate(); ?>
    <input name="UserRegistrationDate" type="hidden"  value="<?php echo $date ?>" >
              <p align="right"><span class="style5">*</span>First name:
                <input type=text name="firstname" value="<?php echo $_SESSION['kt_UserFirstName']; ?>"></p>
       <p align="right"><span class="style5">*</span>Last Name:
               <input type=text name="lastname" value="<?php echo $_SESSION['kt_UserLastName']; ?>"></p>
              <p align="right"><span class="style5">*</span> Job Title:
                <input type=text name="title"></p>
              <p align="right">Department:
               <input type=text name="department"></p>
             <p align="right"><span class="style5">*</span>Organization:
               <input type=text name="organization"></p>
             <p align="right"><span class="style5">*</span>Office Phone:
               <input type=text name="officephone"></p> 
              <p align="right">Cell Phone:
               <input type=text name="cellphone"></p>     
                </td>
                    <td width="255" height="323" valign="top" scope="col">
             <p align="right"><span class="style5">*</span>Address 1:
                <input type=text name="address1"></p>
             <p align="right">Address 2:
               <input type=text name="address2"></p>
              <p align="right"><span class="style5">*</span>City:
                <input type=text name="city"></p>
             <p align="right"><span class="style5">*</span>State / Province:
               <input type=text name="state"></p>
             <p align="right"><span class="style5">*</span>Zip / Postal Code:
               <input type=text name="zipcode"></p>
             <p align="right"><span class="style5">*</span>Country:
               <select name="req_country">
                  <option value="Argentina">Argentina
                  <option value="Australia">Australia
                  <option value="Austria">Austria
                  <option value="Belgium">Belgium
                  <option value="Brazil">Brazil
                  <option value="Canada">Canada
                  <option value="Caribbean_Islands">Caribbean Islands
                  <option value="Chile">Chile
                  <option value="China">China
                  <option value="Colombia">Colombia
                  <option value="Denmark">Denmark
                  <option value="Ecuador">Ecuador
                  <option value="Egypt">Egypt
                  <option value="Finland">Finland
                  <option value="France">France
                  <option value="Germany">Germany
                  <option value="Greece">Greece
                  <option value="Greenland">Greenland
                  <option value="Hong_Kong">Hong Kong
                  <option value="Iceland">Iceland
                  <option value="India">India
                  <option value="Indonesia">Indonesia
                  <option value="Ireland">Ireland
                  <option value="Israel">Israel
                  <option value="Italy">Italy
                  <option value="Japan">Japan
                  <option value="Korea">Republic of Korea
                  <option value="Luxembourg">Luxembourg
                  <option value="Malaysia">Malaysia
                  <option value="Mexico">Mexico
                  <option value="Netherlands">Netherlands
                  <option value="New_Zealand">New Zealand
                  <option value="Norway">Norway
                  <option value="Philippines">Philippines
                  <option value="Portugal">Portugal
                  <option value="Russian">Russian Federation
                  <option value="Saudi_Arabia">Saudi Arabia
                  <option value="Singapore">Singapore
                  <option value="South_Africa">South Africa
                  <option value="Spain">Spain
                  <option value="Sweden">Sweden
                  <option value="Switzerland">Switzerland
                  <option value="China">Province Of China Taiwan
                  <option value="Thailand">Thailand
                  <option value="Turkey">Turkey
                  <option value="United Kingdom">United Kingdom
                  <option value="US" selected="selected">United States
                  <option value="Venezuela">Venezuela
                  <option value="Viet_Nam">Viet Nam
                  <option value="N/A">Not listed
              </select></p>
                <p align="right">Website:
               <input type=text name="website"></p>
                <p align="right"><span class="style5">*</span>Expertise:
                <input type=text name="expertise"></p>
              <br>        
              </td>
    </tr>
       <tr>
              <td colspan="2" align="right" valign="top" scope="col">
                <p><strong>Attach bio:</strong>
      Please type or cut and paste a short professional bio. <br>
      <textarea name="bio" rows="20" style="width:100%"></textarea> <br>
    </p>
    <br>
    <p><strong>Upload photo:</strong>
                  <input class="noformstyle" type="file" name="photo" size="30" ><br>
    (max. 1.5Mb; allowed file types: *.jpg, *.gif, *png only)</p>
    <br>
    <div class="lineDiv"></div>
    <br>
    </td>
           </tr>
          <tr>
              <td height="66" align="right" valign="top" scope="col"><p><strong><span class="style5">*</span>Travel</strong></p>
    <p>Arrival Date:
               <input name="arrivaldate" id="arrivaldate" value="" size="11"><a href="javascript:void(0)" onClick="if(self.gfPop)gfPop.fPopCalendar(document.RegistrationForm.arrivaldate);return false;" ><img class="PopcalTrigger" align="absmiddle" src="http://www.agci.org/JavaScript/calendar/calbtn.gif" width="34" height="22" border="0" alt=""></a>
                </p>          
                </td>
                <td height="66" align="right" valign="top" scope="col">
                  <div align="right">
                    <p> </p>
                    <p>Departure Date:
                      <input name="departuredate" id="departuredate" value="" size="11"><a href="javascript:void(0)" onClick="if(self.gfPop)gfPop.fPopCalendar(document.RegistrationForm.departuredate);return false;" ><img class="PopcalTrigger" align="absmiddle" src="http://www.agci.org/JavaScript/calendar/calbtn.gif" width="34" height="22" border="0" alt=""></a>
                    </p>
                  </div>
                </td>
    </tr>
          <tr>
              <td height="34" colspan="2" align="right" valign="top" scope="col">
                <label>
                <input type="checkbox" name="travel" id="checkbox" value="unsure of travel dates at this time" class="noformstyle" />
                  I do not know my planned travel dates at this time.
                  </label>
              I will notify AGCI as soon as I have made my travel arrangements (see Logistics for information on travel and how to book your travel with AGCI's travel agent).
               </td>
            </tr>
              <td height="184" colspan="2" valign="bottom" scope="col">
                  <br>
    <div class="lineDiv"></div>
    <br>
    <p><span class="style5">*</span><strong>I will be bringing the following guests:</strong></p>
                <p># of Adults:    <select name="adultguests" size="1">
                  <option value="0">0</option>
                  <option value="1">1</option>
                  <option value="2">2</option>
                  <option value="3">3</option>
                  <option value="4">4</option>
                </select>  Names: <input type=text name="adultguestnames">
                </p>
                <p># of Children: <select name="childguests" size="1">
                  <option value="0">0</option>
                  <option value="1">1</option>
                  <option value="2">2</option>
                  <option value="3">3</option>
                  <option value="4">4</option>
                </select>  Names:
                <input type=text name="childguestnames">
                 <br />
                 <br />
                 <input type="checkbox" name="guests" id="checkbox2" value="unsure about guests at this time" class="noformstyle"/>
                     I am not sure about guests at this time. I will let AGCI know at a later date if I decide to bring a guest or child.
                  </td>
            </tr>
          <tr>
            <td height="182" colspan="2" valign="bottom" scope="col">
    <br>
    <div class="lineDiv"></div>
    <br>
                    <p><span class="style5">*</span><strong>Lodging</strong></p>
              <input type="radio" name="book a room?" value="yes" class="noformstyle">
                 <strong>Please reserve a room for me and my guest(s) at the Molly Gibson Lodge.</strong>  A lodging confirmation will be sent to you once you are
    registered. If you plan on extending your stay before or after the workshop dates, please let us know so that we can make appropriate arrangements with the hotel.<br />
    <br />
              <input type="radio" name="book a room?" value="no" class="noformstyle">
                  <strong> I do not require lodging at the Molly Gibson. </strong>I will notify AGCI of where I intend to stay,
    and I understand the reimbursement procedures as described in the logistics information.        
    </td>
           </tr>
          <tr>
              <td height="218" colspan="2" valign="bottom" scope="col">
                <p><strong>Comments:</strong><br>
                <textarea name="comments" cols="400" rows="3"></textarea></p>
                </td>
           </tr>
          <tr>
             <td height="57" colspan="2" valign="middle" scope="col">
                <span class="style5">* required field</span>
               </td>
            </tr>
          <tr>
             <td height="20" colspan="2" valign="bottom" scope="col">
            <input class="submit" type="submit" name="KT_Insert1" id="KT_Insert1" value="Register"></td>
           </tr>
          <tr>
            <td height="121" colspan="2" valign="bottom" scope="col">
              </td>
           </tr>
         </table>
    </form>
    </div>
    <!-----------------end registration form----------------->

    Actually if you do not need a public registration form, its much more practical to use the "Create Dynamic List" and "Create Dynamic Form" behaviors in your site administration back end. And it really only takes about two minutes to set up.
    This will give you the ability to add, delete and edit all your users.
    Brad Lawryk
    Community Expert: Dreamweaver
    Usergroup Manager: Northern British Columbia Adobe Usersgroup

  • Cycle Count Reservation Issue in Item Supply/Demand Form

    Hi
    Few of the inventory items are stuck with Cycle Count Reservation in Item Supply/Demand Form. The Identifier field is empty. It is not tied to any sales order or PO . I checked the On hand quantity(on-hand quantity form) and the current on hand (Item Supply/Demand form) both are same. Could not able to figureout what went wrong and how the cycle count reservations are created. Even after performing the Cycle counting on these items, it did not consumed these reservations and releaved those reservations.
    Could anyone suggest me please in what scenrios we get this issue and how to eliminate these records from the Item Supply/Demand Form. we are on 11.5.10.2 INV and WMS RUP4.
    Thank You!
    Krishna

    CC reservations can be triggered by Curtail (Short) picks on mobile gun. When this happens the ATR qty gets decremented by this Qty by putting a CC reservation.
    This can also be deleted from front end by changing the demand source to acc/acc alias, save and then delete.
    Karthik

Maybe you are looking for

  • Need Desperate Help Regarding iPhone 4 Sync Issue (PC, Win7)

    I'll attempt to make this question as concise and fully informative as possible. I have an iPhone 4 Jailbroken running firmware v4.3.3. I typically sync my phone with my PC on a normal basis until this past October I bought a new SSD and had to re-in

  • Creating an application module in a Java class

    Hi everyone, I'm trying to create an application module from a normal Java class where I don't have access to any HttpSession objects. I tried to use the method in the documentation appMod = Configuration.createRootApplicationModule(                 

  • Material type non valuated affected stock update?

    Hi expert, i created PO by using account assignment "A" and material number with material type non valuated (just qty update). At the same time i processed GR, the result wasn't as like as i expected. The asset value was raised and the qty was update

  • CMSDK beginner

    Hello everybody. I am trying to understand if it is easy to build a web based document management system program with CMSDK. Do any of you know where it possible to find real example of a web based skeleton document management system easy to deploy j

  • Event Handling problem

    Hello everyone. i am trying to handle events in the item master date form (150) in order to hide the Item Cost. It is working fine with most of the time using only the UI api. However if doing the following actions, the events are not processed by th