Reg submit
Dear experts,
I need help in the following requirement,
I have a prgram named "A" with values in the selection screen. I need to call the other transaction "B" in the background passing all the values to that selection screen B from selection screen "A"and exectute . After exection it should return back to program "A" with the values of internal table in the program "B".
can anyone pls send me a sample code or let me know how to accomplish this
thanks in advance
karthik
Hello Karthick,
Check this code.
I have did this report to submit to reports and get the output list of the two reports.
REPORT ZV_06_026 .
*--- Type für Anwenderstatus Suchhilfe
TYPES: BEGIN OF TY_ESTAT,
STSMA TYPE TJ30-STSMA,
ESTAT TYPE TJ30-ESTAT,
TXT04 TYPE TJ30T-TXT04,
TXT30 TYPE TJ30T-TXT30,
END OF TY_ESTAT.
*--- Anwenderstatus für Projekte
DATA: G_T_ESTAT TYPE TABLE OF TY_ESTAT,
G_R_ESTAT TYPE TY_ESTAT,
BEGIN OF G_T_STATUS OCCURS 0,
PSPID LIKE PROJ-PSPID, "Projektdefinition
POSID LIKE PRPS-POSID, "PSP-Element
END OF G_T_STATUS.
*--- Interne Tabelle für Listausgabe
DATA:
BEGIN OF G_T_LISTE OCCURS 0,
PSPNR LIKE PROJ-PSPNR, "Projektdefinition (intern)
PSPID LIKE PROJ-PSPID, "Projektdefinition
POSID LIKE PRPS-POSID, "PSP-Element
POST1 LIKE PRPS-POST1, "Kurzbeschreibung
KSTAR LIKE COSS-KSTAR, "Kostenart "/&-neueneu
KTEXT LIKE CSKU-KTEXT, "Kostenarttext"/&-neueneu
PLAN LIKE COSS-WTG001,
OBLIGO LIKE COSS-WTG001,
IST LIKE COSS-WTG001,
PLAN_MINUS LIKE COSS-WTG001,
OBLIGO_INT LIKE COSS-WTG001,
IST_INT LIKE COSS-WTG001,
IST_LFD LIKE COSS-WTG001,
PSPXX(1),
PSPNN(23),
END OF G_T_LISTE.
TYPES:
TYPE_TEXTLINE(512).
DATA:
W_TEXTLINE TYPE TYPE_TEXTLINE.
DATA:
LT_LIST TYPE TABLE OF ABAPLIST,
LT_TXT TYPE TABLE OF TYPE_TEXTLINE.
TABLES: T2503,PRPS,TJ02T.
SELECT-OPTIONS: SO_WWSTO FOR T2503-WWSTO.
*--- Buchungsperiod VON
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(33) TEXT-S01 FOR FIELD PA_JAHRV.
PARAMETERS:
PA_JAHRV TYPE GJAHR OBLIGATORY,
PA_PERV TYPE CO_PERIO OBLIGATORY.
SELECTION-SCREEN END OF LINE.
*--- Buchungsperiod BIS
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(33) TEXT-S02 FOR FIELD PA_JAHRB.
PARAMETERS:
PA_JAHRB TYPE GJAHR OBLIGATORY,
PA_PERB TYPE CO_PERIO OBLIGATORY.
SELECTION-SCREEN END OF LINE.
*--- Systemstatus
SELECT-OPTIONS: SO_PBUKR FOR PRPS-PBUKR DEFAULT '1060',
SO_ISTAT FOR TJ02T-TXT04 NO INTERVALS MATCHCODE OBJECT Z48R_ISTAT.
SELECTION-SCREEN BEGIN OF BLOCK BLCK2 WITH FRAME TITLE TEXT-002.
PARAMETERS: FILENAME LIKE RLGRAP-FILENAME
DEFAULT '
SI39467atmo2$SAMQFETRANSFER.txt'.
*SELECTION-SCREEN SKIP.
SELECTION-SCREEN ULINE.
PARAMETERS: AP RADIOBUTTON GROUP GRP1,
PC RADIOBUTTON GROUP GRP1.
SELECTION-SCREEN END OF BLOCK BLCK2.
*--- Initialzation -
INITIALIZATION.
PERFORM F_INITIALZATION.
INCLUDE Z48C_PSP_DOWN_E01 *
AT SELECTION-SCREEN ON VALUE-REQUEST FOR FILENAME.
PERFORM FRONTEND_FILE CHANGING FILENAME.
*& Form f_initialzation
text
--> p1 text
<-- p2 text
FORM F_INITIALZATION.
PA_JAHRV = '1900'.
PA_PERV = '001'.
PA_JAHRB = SY-DATUM+0(4).
PA_PERB = SY-DATUM+4(2).
*--- Alle zu Projekten gehörene Anwenderstatus selektieren
SELECT TJ30STSMA TJ30ESTAT TJ30TTXT04 TJ30TTXT30
INTO CORRESPONDING FIELDS OF TABLE G_T_ESTAT
FROM TJ30
INNER JOIN TJ30T ON TJ30STSMA = TJ30TSTSMA
AND TJ30ESTAT = TJ30TESTAT
INNER JOIN TJ21 ON TJ30STSMA = TJ21STSMA
WHERE TJ30T~SPRAS EQ SY-LANGU
AND TJ21~OBTYP = 'PRN'
OR TJ21~OBTYP = 'PDN'.
ENDFORM. " f_initialzation
START-OF-SELECTION.
DATA: LISTOBJECT LIKE ABAPLIST OCCURS 0 WITH HEADER LINE.
SUBMIT Z48R_PROJEKTSTATUS WITH SO_WWSTO IN SO_WWSTO
WITH SO_ISTAT IN SO_ISTAT
EXPORTING LIST TO MEMORY
AND RETURN.
Import the list from memory and store it in table listobject
CALL FUNCTION 'LIST_FROM_MEMORY'
TABLES
LISTOBJECT = LISTOBJECT
EXCEPTIONS
NOT_FOUND = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
WRITE 'Error in list_from_memory.'.
ENDIF.
CALL FUNCTION 'LIST_TO_ASCI'
EXPORTING
LIST_INDEX = -1
TABLES
LISTASCI = LT_TXT
LISTOBJECT = LISTOBJECT
EXCEPTIONS
EMPTY_LIST = 1
LIST_INDEX_INVALID = 2
OTHERS = 3.
CHECK SY-SUBRC = 0.
DATA: LV_LINES LIKE SY-TABIX.
DESCRIBE TABLE LT_TXT LINES LV_LINES.
LOOP AT LT_TXT INTO W_TEXTLINE.
CHECK SY-TABIX > 3.
CHECK W_TEXTLINE(5) <> 'Keine'.
CHECK W_TEXTLINE(5) <> '-----'.
DO 120 TIMES. REPLACE ' |' WITH '|' INTO W_TEXTLINE. ENDDO.
"WRITE / w_textline(255).
PERFORM HANDLE_LINE USING W_TEXTLINE.
ENDLOOP.
Free memory
CALL FUNCTION 'LIST_FREE_MEMORY'
TABLES
LISTOBJECT = LISTOBJECT
EXCEPTIONS
OTHERS = 1.
IF SY-SUBRC <> 0.
WRITE 'Error in list_free_memory.'.
ENDIF.
DATA: SO_PROJ TYPE RANGE OF PROJ-PSPID,
WA_PROJ LIKE LINE OF SO_PROJ,
SO_POSID TYPE RANGE OF PRPS-POSID,
WA_POSID LIKE LINE OF SO_POSID.
CLEAR: SO_PROJ,WA_PROJ,SO_POSID,WA_POSID.
REFRESH: SO_PROJ,SO_POSID.
LOOP AT G_T_STATUS.
WA_PROJ-SIGN = 'I'.
WA_PROJ-OPTION = 'EQ'.
WA_PROJ-LOW = G_T_STATUS-PSPID.
APPEND WA_PROJ TO SO_PROJ.
WA_POSID-SIGN = 'I'.
WA_POSID-OPTION = 'EQ'.
WA_POSID-LOW = G_T_STATUS-POSID.
APPEND WA_POSID TO SO_POSID.
CLEAR: WA_PROJ,WA_POSID.
ENDLOOP.
SORT SO_PROJ BY LOW.
DELETE ADJACENT DUPLICATES FROM SO_PROJ COMPARING LOW.
SORT SO_POSID BY LOW.
DELETE ADJACENT DUPLICATES FROM SO_POSID COMPARING LOW.
SUBMIT Z48R_PROJEKT_FEHLERKOSTEN WITH SO_PROJ IN SO_PROJ
WITH SO_PSP IN SO_POSID
WITH SO_PBUKR IN SO_PBUKR
WITH PA_JAHRV EQ PA_JAHRV
WITH PA_PERV EQ PA_PERV
WITH PA_JAHRB EQ PA_JAHRV
WITH PA_PERB EQ PA_PERB
WITH P_LIST EQ 'X'
EXPORTING LIST TO MEMORY
AND RETURN.
IMPORT G_T_LISTE FROM MEMORY ID 'IV_06_026'.
Import the list from memory and store it in table listobject
CALL FUNCTION 'LIST_FROM_MEMORY'
TABLES
LISTOBJECT = LISTOBJECT
EXCEPTIONS
NOT_FOUND = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
WRITE 'Error in list_from_memory.'.
ENDIF.
CALL FUNCTION 'LIST_TO_ASCI'
EXPORTING
LIST_INDEX = -1
TABLES
LISTASCI = LT_TXT
LISTOBJECT = LISTOBJECT
EXCEPTIONS
EMPTY_LIST = 1
LIST_INDEX_INVALID = 2
OTHERS = 3.
LOOP AT G_T_LISTE.
WRITE:/ G_T_LISTE.
ENDLOOP.
*& Form handle_line
text
<--> P_TEXTLINE text
FORM HANDLE_LINE USING P_LINE.
DATA: BEGIN OF T_CLINE OCCURS 0,
TEXT(40),
END OF T_CLINE.
erstes Zeichen immer | und irrelevant
SHIFT P_LINE.
SPLIT P_LINE AT '|' INTO TABLE T_CLINE.
READ TABLE T_CLINE INDEX 2.
G_T_STATUS-PSPID = T_CLINE-TEXT.
READ TABLE T_CLINE INDEX 3.
G_T_STATUS-POSID = T_CLINE-TEXT.
APPEND G_T_STATUS.
ENDFORM. " handle_line
*& Form HANDLE_LINE_LIST
text
-->P_W_TEXTLINE text
FORM HANDLE_LINE_LIST USING P_LINE.
DATA: BEGIN OF T_CLINE OCCURS 0,
TEXT(40),
END OF T_CLINE.
erstes Zeichen immer | und irrelevant
SHIFT P_LINE.
SPLIT P_LINE AT '|' INTO TABLE T_CLINE.
READ TABLE T_CLINE INDEX 2.
G_T_OUTTAB-PSPID = T_CLINE-TEXT.
READ TABLE T_CLINE INDEX 3.
G_T_OUTTAB-POSID = T_CLINE-TEXT.
APPEND G_T_OUTTAB.
ENDFORM. " HANDLE_LINE_LIST
*& Form frontend_file
text
<--P_FILENAME text
FORM FRONTEND_FILE CHANGING P_FILENAME.
CALL FUNCTION '/SAPDMC/LSM_F4_FRONTEND_FILE'
EXPORTING
PATHNAME = 'C:'
CHANGING
PATHFILE = P_FILENAME
EXCEPTIONS
CANCELED_BY_USER = 1
SYSTEM_ERROR = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " frontend_file
Hope this will helps you.
Vasanth
Similar Messages
-
Reg:Submit statement Return Internal Table
Hi Team,
I have a query to return the internal table from the called program via SUBMIT statement to the calling statement ??
Example : Thing is that consider reports A and B , Report B is getting called from report A where in B we have one internal table full of data that i need to pull to report A and there i need to process it.
How can i achieve this?
Please let me know the possible ways.
Karthik.SHi karthik,
SUBMIT .... AND RETURN EXPORTING LIST TO MEMORY.
Then use FM LIST_FROM_MEMORY.
Thanks,
Anil -
I have used the submit command in my program as follows:
SUBMIT rbdapp01 WITH SELECTION-TABLE rspar_tab EXPORTING LIST TO
MEMORY AND RETURN.
This is working fine. But I want the updated values present in the program rbdapp01 populated in my internal table.
i.e in the program rbdapp01 the idoc status is changed from 64 to 53. I want this new status to be updated to my internal table. How can I do that? Please do help me.Hi you always free the memory id as
FREE mEMORY ID <NAMEOF ID>
and refresh the itab. -
Doubt reg submit in a program and transportation.
Hi Folks,
I have a report XYZ in which 2 other reports named ABC and DEF
were submitted using SUBMIT.
I had made some corrections in the report DEF and duly transported
the same DEF to Quality and prodcution.
My question is, do I need to transport the program XYZ too as it
is using this program DEF(for which the corrections were made) again
to quality and production.
Kindly let me know.
Thanks,
K.Kiran.Amit,
The submit is like this
SUBMIT zmm_rept_rg1_det_003_new WITH
SELECTION-TABLE fp_it_rsparams AND RETURN.
And in the above submit program there is a date field in the selection-screen.
and we have done a minor change in the where clause of this program
SELECT * FROM z2irg1bal
APPENDING CORRESPONDING FIELDS OF TABLE it_bal1
WHERE matnr = itab6-matnr
AND datum LE p_stdate
<b> AND datum < p_stdate</b>
AND exgrp = itab6-exgrp.
earlier it used to be EQ.
So, you mean to as the submit done with the selection screen I need to transport even the program which is using this program.
Am I getting you right?
Thanks.
K.Kiran. -
Read Dynamic Selections for LDB ADA
Hi,
I have a report program using Logical Database ADA, but for performance reasons needed to include a wrapper program , so that the wrapper program schedules a job in case the report is run for huge volume comp codes.
Now the actual program uses the logical database ADA, which gives them the option of dynamic selections,So needed to add it to the wrapper also, since we they need to have the option to be able to enter conditions in Dynamic selections also. Now How do I pass the dynamic selections made in the wrapper to the actual program.Was planning to export the selection to memory and then import it.
I schedule the job or run it in foreground based on the selection made using the SUBMIT functionality.
Would be great if someone can let me know how to read the dynamic selections entered.
Thank you
LalithaHi,
You have to use SUBMIT statement with FREE SELECTIONS. Declare RSDS structure and fill them.
Just refer this block, similar type of code
Re: Reg: SUBMIT WITH Free Selections
Thanks & Regards
Bala Krishna -
Regarding QUAN data type and Parameter id
Dear all
i have a doubt that is...im creating 3 fields LENGTH,BREADTH,THICKNESS for which i have used (LAENG,BRIET)but the data type QUAN is of length 13 characters, now im using theses fields in a screen and when i try to enter 3 digit value into these input fields i get the error ....Entry too long (enter in the format ~.__). and i replace it with 2 digit it will accept.
and one more.
each and every screen field value can be passed to the program only by PRAMAETER id statement or can u please suggest me the best possible way to pass the screen values to the program.Hi Naren
If you have to consider the commas and dots also in output lenght which is 17
10 digits
3 digits after decimal point
= 13 "Length
1 decimal point
3 commas
= 4
13 + 4 = 17 "Output Length
if you enter 1,234,567,890.123 OR 1234567890 it will except
But if you will enter 12345678901 it will not because ... it will not accept 11 digits... less then 11 digits it will except...
also if you pass the 10 digits then decimal point and then upto 3 digits afrter the decimal point then also it will accept...
Try to Debug the code and check the value of the parameter ID you are passing in screen...
Check for the above validation...
also check out the data type must match...
post your code as well here so we can give better suggestion on it...
Also there is no parameter ID for the Dataelement LAENG
For passing values to other report have a look on below thread..
Reg: SUBMIT WITH Free Selections
Also Search on SCN using SUBMIT and also have a look on ABAP help for SUBMIT statmetn for better idea...
Hope it will solve your problem..
Thanks & Regards
ilesh 24x7
ilesh Nandaniya -
DBMS_JOB.SUBMIT - REG
Dear all
Good Day
I have a procedure call dp_process() with two parameter. i can call this procedure in forms like
dp_process(:DTLS.NO1,:DTLS.USERID);.
IS it possible to call this procedure using DBMS_JOB.SUBMIT in forms. If so what is the syntax.
Thanks with Regards
Sathian AHi Sathian,
Here is the syntax of dbms_job.submit..
dbms_job.submit(:v_your_job_id_var, 'your_procedure;', INTERVAL => 'SYSDATE+(2/24)');where v_your_job_id_var is the variable you've declared to hold the job_id (it is an out parameter, so, you have to declare the variable - say declare v_your_job_id_var number;), your_procedure is the procedure that you want to execute once in every 2 hours. SYSDATE+(2/24) means, your procedure will be executed once in every two hours starting from now.
HTH.
Regards,
Arun -
Reg: How to submit out of two parameter either one should mandatory.
Hallo All,
I have a requirement in concurrent program parameter submit following conditions.
scenario:
1. I have two parameters in which atleast either one should always pass. for this case concurrent parameter should allow to submit the pgm.
2. If I missed out two marameters, Program should not allow to submit, there should pop-up message, "Please select item name or creation date parameter"
Thanks in advance.
Please guide me how to achive this scnario?
Thanks,
Velu.
Edited by: user10348287 on Mar 12, 2012 2:53 AMHi Anthony,
Try to connect the table with the "save FM". This FM should only execute, if it contains a text (via formula). After saving it should call the FM for displaying the selected record of the table. For initializing you can call the FM for displaying directly (use a guard condition).
Best Regards,
Marcel -
Reg: Error While Invoking SRS Submit : FNDCPPROGRAMPAGE
Hi All,
Iam getting the below error While Invoking :
OA.jsp?akRegionApplicationId=0&akRegionCode=FNDCPPROGRAMPAGE
Could not create web bean, could not find item metadata Item Name: (FndCpLanguageTable); Region: (FNDCPPROGRAMSTATION)
Could not create web bean, could not find item metadata Item Name: (FndCPCopyRequest); Region: (FNDCPPROGRAMCONTAINER)
This page uses a train but does not contain a Next/Back Locator element (OANavigationBarBean). According to the UI Standards a train should always be implemented in conjunction with the Next/Back Locator element.
The window title attribute for the page layout region has not been set. This attribute value will be used for the browser window title and should be set according to the UI standards. A default window title will be displayed for all such pages that violate the standards. Action: Set the window title or title attribute for the page layout region. The title attribute is used as a secondary source for the window title if the window title is missing.
Please let me know where iam wrong.
Regards
SridharHi Sridhar ,
Here is the complete program
You controller code :
String PACELINE_HEADER_ID_VALUE = pageContext.getparamter(“Id name”);
Serializable[] param={PACELINE_HEADER_ID_VALUE,Current_Resp};
return_reqId = am.invokeMethod("RunConCurrent", param);
AmImpl code :
import java.sql.PreparedStatement;
import oracle.apps.fnd.cp.request.ConcurrentRequest;
public int RunConCurrent(String headerID,String currentResp)throws OAException
System.out.println("the current reponsibity from Applicatin module is "+currentResp);
System.out.println("Inisde the Application Module the value of header id "+headerID);
int requestId =0;
try {
OADBTransaction tx = (OADBTransaction)getDBTransaction();
java.sql.Connection pConncection = tx.getJdbcConnection();
ConcurrentRequest cr = new ConcurrentRequest(pConncection);
String applnName = "SDMINV"; //Application that contains the concurrent program
String cpName = "SDMPL"; //Concurrent program name
String cpDesc = "SDM Paceline Layout Report Concurrent Program"; // concurrent Program description
Vector cpArgs = new Vector();
cpArgs.addElement(headerID);
requestId = cr.submitRequest(applnName,cpName,cpDesc, null, false, cpArgs);
tx.commit();
return requestId;
catch (RequestSubmissionException e)
OAException oe = new OAException(e.getMessage());
oe.setApplicationModule(this);
throw oe;
catch(Exception e)
return 0;
finally
System.out.println("Inside debug finally block");
Let me know if its not clear .
Keerthi -
Form doesn't submit [was: Please Help!]
I am new to web development and am obviously just not seeing what I'm missing. I re-built our company's website in January (mostly because of over-charging by our webmaster). It is an exceptionally basic .html sight but it works for us. I have learned a great deal about coding the basics and have been slowly going back through my orginal pages and cleaning up the code. While I was doing that I noticed that one of the pages our customers use are from our old website. I am trying to create a form that I will be able to manipulate that has the look and feel of our current site. Maybe you can take a look and explain to me why when I fill in all the required fields and hit the "submit" button nothing happens.
http://http://langsauction.com/Staging/bid_form_test.html
Our server has a cgi folder that has not been touched or moved so I am guessing I just haven't figured out where to add the code I need for this to work.
I have checked the code from our old page:
http://https://langs11.securesites.net/bids/index.php/
Other than it being a .php I can't see what I missed.....
When the information is submitted from the "old" page it is stored on our server and I receive an email notification, I click the link in my email and am directed to a printable page with all of our customer's information. I would like the same thing to happen with my new page.
I really appreciate any help you can give me!
Christina
Subject line edited by moderator to indicate nature of problemYou have been huge help already....I am taking your advise and walking away for this evening.....if you could look into this I would be eternally greatful!!
<?php
* Things to NOTE
* Is it ok to have month values as numbers in this format 01, 02, 03, ... 11... etc..
require_once 'https://langsauction.com/bids/Crypt_Blowfish-1.0.1/Blowfish.php';
include('https://langsauction.com/bids/functions.php');
include('https://langsauction.com/bids/db.php');
$b = new Crypt_Blowfish('5az1bc1dDa1cv1TVa1wQa12xXx');
# for new crypt method
$key = "5az1bc1dDa1cv1TVa1wQa12xXx";
$error_fields = array();
$errors = array();
# passed to function month_display and will print out relevant values
$***_month = array("01" => "January", "02" => "February", "03" => "March", "04" => "April", "05" => "May", "06" => "June", "07" => "July", "08" => "August", "09" => "September", "10" => "October", "11" => "November", "12" => "December");
$***_fields = array("last_name" => "Last Name", "first_name" => "First Name", "address1" => "Address 1", "city" => "City", "state" => "State / Province", "zip" => "Zip / Postal Code", "county" => "County", "country" => "Country", "phone" => "Telephone", "email" => "Email", "cc_type" => "Credit Card Type", "cc_name" => "Names As It Appears On Card");
# keeps track of which fields had errors so
# it's html row can be highlighted
$error_fields = array();
* Credit Card Validation Solution, PHP Edition,
* Usage Example.
* @package CreditCardValidationSolution
* @author Daniel Convissor <[email protected]>
* @copyright The Analysis and Solutions Company, 2002-2003
* @version $Name: rel-5-12 $ $Id: ccvs_example.php,v 1.15 2003/08/06 05:51:57 danielc Exp $
* @link http://www.ccvs.info/
* Require the main file.
require('../Documents/Langsauction/www/langsauction.com/bids/ccvs.inc.php');
$Form = new CreditCardValidationSolution;
* Example of to encrypt and decrypt
$encrypted = $b->encrypt('test');
$decrypted = $b->decrypt($encrypted);
echo " encr - $encrypted - decryp $decrypted";
#echoÊ"Encrypted:Ê" .Êbin2hex($encrypted)Ê.Ê"\n";
# existing code
if (isset($_POST['submit'])) {
dbConnect('langsa');
* Need to Still
* run all fields through POST VARS
* and sanitize data
* use reg match from metrochai validation
# check user has checked Conditions of Sale
if($_POST['agree'] != 'yes') {
array_push($errors, '>>Please read and accept the Conditions of Sale by selecting the checkbox');
foreach ($***_fields as $field => $field_name) {
if($_POST[$field] == '') {
array_push($error_fields, $field);
array_push($errors, '>>The "'. $field_name . '" Field is empty. Please enter information for that field');
* Check that if a user enters a value in the Lot No. field, that all other fields in that row also have values
for($x = 1; $x < 16; $x++) {
if( $_POST['lot' . $x] != '' && ( $_POST['lot_desc' . $x] == '' || $_POST['lot_max' . $x] == '' || $_POST['lot_max_bid' . $x] == '' ) ) {
$lot = 'lot' . $x;
$lot_name = 'Lot No. ' . $_POST['lot' . $x];
array_push($error_fields, $lot );
array_push($errors, '>>Please fill in the additional values for "'. $lot_name . '" in STEP 3');
* Put the names of the card types you accept in here.
* To handle all card types, skip this step and put ''
* in the Accepted argument.
$Accepted = '';
$Month = $_POST['exp_dat_mon'];
$Year = $_POST['exp_dat_yea'];
# adding trim to remove any spaces at beginnning or end
# in order to keep live server from breaking on mysql syntax
$_POST['cc_num'] = trim($_POST['cc_num']);
# check if Credit Card Number is empty
if (empty($_POST['cc_num']) ) {
# if CC Num is blank along with other relevant fields
$Form->CCVSNumber = '4002417016240182';
$Month = '';
$Year = '';
array_push($errors, '>>The "Credit Card Number" Field Is Blank. Please enter information for that field');
# if Credit Card Number is not empty then check integrity of numbers
elseif ( !$Form->validateCreditCard($_POST['cc_num'], 'en', $Accepted, 'Y', $Month, $Year) ) {
array_push($errors, $Form->CCVSError);
array_push($error_fields, 'cc_num');
$count_errors = count($errors);
if($count_errors == 0) {
# form appears to be good so process data
# encrypt credit card info
# PEAR Blowfish Object Call
#$cc_num = $b->encrypt($_POST['cc_num']);
$cc_num = encrypt($_POST['cc_num'], $key); //encrypts the data using the key
//echo "$encrypted<hr>";
#sanitize data
$email = strip_invalid_chars($_POST[email], 'email');
$last_name = strip_invalid_chars($_POST[last_name]);
$first_name = strip_invalid_chars($_POST[first_name]);
$address1 = strip_invalid_chars($_POST[address1]);
$address2 = strip_invalid_chars($_POST[address2]);
$city = strip_invalid_chars($_POST[city]);
$state = strip_invalid_chars($_POST[state]);
$zip = strip_invalid_chars($_POST[zip]);
$county = strip_invalid_chars($_POST[county]);
$country = strip_invalid_chars($_POST[country]);
$phone = strip_invalid_chars($_POST[phone], 'insecure');
$cc_type = strip_invalid_chars($_POST[cc_type]);
$cc_name = strip_invalid_chars($_POST[cc_name]);
$exp_dat_yea = strip_invalid_chars($_POST[exp_dat_yea]);
$exp_dat_mon = strip_invalid_chars($_POST[exp_dat_mon]);
$sql = "INSERT INTO cc_form SET
last_name= '$last_name',
first_name = '$first_name',
address1 = '$address1',
address2 = '$address2',
city = '$city',
state = '$state',
zip = '$zip',
county = '$county',
country = '$country',
phone = '$phone',
email = '$email',
cc_type = '$cc_type',
cc_num = '$cc_num',
exp_dat_mon = '$exp_dat_mon',
exp_dat_yea = '$exp_dat_yea',
cc_name = '$cc_name',
date = NOW()";
$insert_cc_data = mysql_query($sql) or die(mysql_error()) ;
# get id for lots table
# to keep track of each user's lots
$id = mysql_insert_id();
* Insert Lots
foreach ($_POST as $key => $val) {
# sanitize data in all fields in loops
if (preg_match("/lot([0-9]+)/", $key, $matches)) {
#echo "-- $matches[0]";
if($_POST['lot'.$matches[1]] != '') {
$val_lot = strip_invalid_chars($_POST['lot'.$matches[1]]);
$val_lot_desc = strip_invalid_chars($_POST['lot_desc'.$matches[1]]);
$val_lot_max = strip_invalid_chars($_POST['lot_max'.$matches[1]]);
// looks like strip_invalid_chars with type 'all' was stripping out '.' and perhaps the comma from
// the javascript that formatted the number eg: 1,204.02
// will now set type 'insecure' for strip_invalid_chars, which should leave '.' and , commas intact
// for now will leave the lot_max_bid field as a varchar and have the javascript do the formatting
// NOTE if the user's browser does not have javascript enabled
// then currency will not be formatted into the database
// would need to check entries for a '.' and if not found then use php currency formatting function
$val_lot_max_bid = strip_invalid_chars($_POST['lot_max_bid'.$matches[1]], 'insecure');
if(!preg_match("/./", $val_lot_max_bid)) {
//$val_lot_max_bid = number_format($val_lot_max_bid, 2, '.', ',');
#echo $val_lot . "<br />";
#echo $val_lot_desc . "<br />";
#echo $val_lot_max . "<br />";
#echo $val_lot_max_bid . "<br />";
$query_lots = "INSERT
INTO
lots
(lot_nu,
lot_desc,
lot_max,
lot_max_bid,
user_id,
date
values(
'" . $val_lot . "',
'" . $val_lot_desc . "',
'" . $val_lot_max . "',
'" . $val_lot_max_bid . "',
'$id',
NOW()
#v_dump($matches[1]);
$insert_lots = mysql_query($query_lots) or die(mysql_error());
} # end of if isset
* Make Sure Duplicate Entries Don't Occur
* When User Hits Refresh Here
?>
<html>
<head>
<title>Lang's Bids</title>
<script type="text/javascript" src="../Documents/Langsauction/www/langsauction.com/bids/site.js"></script>
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
</head>
<body>
<center>
<table width="750">
<tr>
<td valign="center"><img src="https://langs11.securesites.net/bids/images/Bid-Banner.jpg">
<br />
<font size="-1" face="Verdana, Arial, Helvetica"><p><ul>Your Absentee Bid Information Was Received. Thank You.</ul></p>
<p><ul><a href="javascript:window.close()">Close Window</a></ul></p></font>
</td>
</tr>
</table>
</center>
</body>
</html>
<?php
* Send Email
$today = date("F j, Y, g:i a");
//$to = "[email protected]";
//$to = "[email protected]";
//$to = "[email protected]";
// current email address to use!
$to = "[email protected]";
//$to = "[email protected]";
$from = "[email protected]";
$subject = "A Lang's Absentee Bid Has Been Submitted - " .$today. "";
$message = "A Lang's Absentee Bid Has Been Submitted on " .$today. "\n\n Visit the Admin Area to view this entry:\n\nhttps://langs1.securesites.net/lang_cc/index.php";
$headers = "From: $from\r\n";
$send = mail($to, $subject, $message, $headers);
exit;
} # end of submit
?>
<html>
<head>
<title>Lang's Bids</title>
<LINK REL="StyleSheet" HREF="../Documents/Langsauction/www/langsauction.com/bids/bids.css" TYPE="text/css">
<SCRIPT LANGUAGE="JavaScript">
<!--http://javascript.internet.com/forms/currency-format.html-->
<!-- Begin
function formatCurrency(num) {
num = num.toString().replace(/\$|\,/g,'');
if(isNaN(num))
num = "0";
sign = (num == (num = Math.abs(num)));
num = Math.floor(num*100+0.50000000001);
cents = num%100;
num = Math.floor(num/100).toString();
if(cents<10)
cents = "0" + cents;
for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
num = num.substring(0,num.length-(4*i+3))+','+
num.substring(num.length-(4*i+3));
//return (((sign)?'':'-') + '$' + num + '.' + cents);
return (((sign)?'':'-') + num + '.' + cents);
// End -->
</script>
<style type="text/css">
.disclaimer {
font-family: Georgia, "Times New Roman", Times, serif;
font-size: 14px;
color: #000;
margin: 0px;
padding: 0px;
.heading {
font-family: Georgia, "Times New Roman", Times, serif;
font-size: 30px;
color: #6A0000;
.buttons {
font-family: Georgia, "Times New Roman", Times, serif;
font-size: 54px;
.footer {
font-family: Georgia, "Times New Roman", Times, serif;
font-size: 16px;
line-height: 1px;
font-style: italic;
.tabletitles {
font-family: Georgia, "Times New Roman", Times, serif;
font-size: 14px;
</style>
</head>
<!-- body -->
<body>
<form name=currencyform method="post" action="<?=$_SERVER['../Documents/Langsauction/www/langsauction.com/bids/PHP_SELF']?>#for m_start">
<center>
<table width="750" border="0" cellpadding="0" cellspacing="5" class="text">
<tr>
<td colspan="2" align="center"><img src="Auction Banner.jpg" width="960" height="255" />
</td>
</tr>
<tr>
<td colspan="2" align="left">
<br>
<center>
<font face="arial" size="3">
<span class="heading">Absentee and Phone Bid Form </span><br>
</font>
</center>
<div align="center"><br>
<span class="disclaimer">IMPORTANT: Please read CONDITIONS OF SALE before filling out form.<br><br>
<strong>Absentee Bidding:</strong> Please complete this form to absentee bid on any lots (catalog item numbers) in this auction. Absentee bids are executed on your behalf by our staff in competition with bids from other bidders. In the event two identical absentee bids are received, the bid first received will be accepted. In the event your maximum bid ties with a bid from the phone, the normal policy is to go one increment higher on your behalf to break the tie in your favor. If you want us to do so, PLEASE INDICATE +1 ON THE FORM, IF NOT, PLEASE INDICATE MAX. <br><br>
<strong>Phone Bidding:</strong> If you want to bid on the phone, through a member of Lang’s staff during the auction, please indicate so on this form along with the numbers of the lots you intend to bid on. Be sure to indicate the phone numbers where Lang’s can call you when it’s time for you to bid. We will make every effort to execute all absentee and phone bids. However, if there is an error or omission, Lang’s will not be held liable. <br><br>We require a good faith deposit equal to 20% of the maximum total bid (bank check, money order or VISA/Master Card).
An 18% buyer’s premium will be added to all successful bids. A 3% discount (resulting in 15%) is given for cash or check payments.
<br><br>
<strong>Invoices will be emailed at the close of the auction on Sunday night to the email address provided.</strong><br> Please check your Spam folder or contact Lang’s office if you do not receive your invoice.<br><br>
~MAKE CHECKS PAYABLE TO LANG’S ~ Payment is due in full within ten days following the auction.
Failure to pay within ten days following the auction will jeopardize future absentee & phone bidding privileges.
</span><br><br>
<hr width="100%" size="3" />
</div>
<p></p>
</td>
</tr>
<tr>
<td colspan="2">
<a name="form_start">
<br />
<?php
$error_count = count($errors);
if($error_count > 0) {
echo "<font face=\"arial\" color=\"red\" size=\"2\">";
echo "The Following Errors Occured:<br /><br />";
# $errors = $_GET['errors'];
foreach ($errors as $error_item) {
echo "$error_item<br />";
echo "</font>";
} # end of if error_count
?>
</td>
</tr>
<tr>
<td colspan="2"></td></tr>
<tr <?php if(in_array('first_name', $error_fields)) { echo "bgcolor=\"FFCCCC\"";}?>>
<td align="left">
<p>First Name </p>
</td>
<td align="left" width="550">
<input name="first_name" type="text" value="<?=$_POST['first_name']?>" maxlength="100" size="25" />
<font color="orangered"><b>*</b></font>
</td>
</tr>
<tr <?php if(in_array('last_name', $error_fields)) { echo "bgcolor=\"FFCCCC\"";}?>>
<td align="left" <?php if(in_array('last_name', $error_fields)) { echo "class=\"signupform\"";}?>>
<p>Last Name </p>
</td>
<td align="left">
<input name="last_name" type="text" value="<?=$_POST['last_name']?>" maxlength="100" size="25" />
<font color="orangered" size="+1"><tt><b>*</b></tt></font>
</td>
</tr>
<tr>
<td align="left" <?php if(in_array('address1', $error_fields)) { echo "bgcolor=\"FFCCCC\"";}?>>
<p>Address 1 </p>
</td>
<td align="left">
<input name="address1" type="text" value="<?=$_POST['address1']?>" maxlength="100" size="25" />
<font color="orangered" size="+1"><tt><b>*</b></tt></font>
</td>
</tr>
<tr>
<td align="left">
<p>Address 2 </p>
</td>
<td align="left">
<input name="address2" type="text" value="<?=$_POST['address2']?>" maxlength="100" size="25" />
</td>
</tr>
<tr valign="top" <?php if(in_array('city', $error_fields)) { echo "bgcolor=\"FFCCCC\"";}?>>
<td align="left">
<p>City </p>
</td>
<td align="left">
<input name="city" type="text" value="<?=$_POST['city']?>" maxlength="100" size="25" />
<font color="orangered" size="+1"><tt><b>*</b></tt></font>
</td>
</tr>
<tr valign="top" <?php if(in_array('state', $error_fields)) { echo "bgcolor=\"FFCCCC\"";}?>>
<td align="left">
<p>State / Province </p>
</td>
<td align="left">
<!--
<select name="state" class="text">
<option value="<?php echo isset($_POST['state']) ? $_POST['state'] : ""; ?>"><?php echo isset($_POST['state']) ? $_POST['state'] : "Select State"; ?></option>
<?php echo QAstatelist($vars['state']); ?>"
</select>
-->
<input name="state" type="text" value="<?=$_POST['state']?>" maxlength="100" size="25" />
<font color="orangered" size="+1"><tt><b>*</b></tt></font>
</td>
</tr>
<tr valign="top" <?php if(in_array('zip', $error_fields)) { echo "bgcolor=\"FFCCCC\"";}?>>
<td align="left">
<p>Zip / Postal Code </p>
</td>
<td align="left">
<input name="zip" type="text" value="<?=$_POST['zip']?>" maxlength="100" size="25" />
<font color="orangered" size="+1"><tt><b>*</b></tt></font>
</td>
</tr>
<!-- adding Country -->
<tr valign="top" <?php if(in_array('country', $error_fields)) { echo "bgcolor=\"FFCCCC\"";}?>>
<td align="left">
<p>Country </p>
</td>
<td align="left">
<input name="country" type="text" value="<?=$_POST['country']?>" maxlength="100" size="25" />
<font color="orangered" size="+1"><tt><b>*</b></tt></font>
</td>
</tr>
<tr valign="top" <?php if(in_array('phone', $error_fields)) { echo "bgcolor=\"FFCCCC\"";}?>>
<td align="left">
<p>Telephone </p>
</td>
<td align="left">
<input name="phone" type="text" value="<?=$_POST['phone']?>" maxlength="100" size="25" />
<font color="orangered" size="+1"><tt><b>*</b></tt></font>
</td>
</tr>
<tr valign="top" <?php if(in_array('email', $error_fields)) { echo "bgcolor=\"FFCCCC\"";}?>>
<td align="left">
<p>eMail </p>
</td>
<td align="left">
<input name="email" type="text" value="<?=$_POST['email']?>" maxlength="100" size="25" />
<font color="orangered" size="+1"><tt><b>*</b></tt></font>
</td>
</tr>
<tr valign="top" <?php if(in_array('cc_type', $error_fields)) { echo "bgcolor=\"FFCCCC\"";}?>>
<td align="left">
<p>Credit Card Type </p>
</td>
<td align="left">
<select name="cc_type" size="1">
<option value="<?=$_POST['cc_type']?>"><?php echo isset($_POST['cc_type']) ? $_POST['cc_type'] : "Select Type"; ?></option>
<option value="Visa">Visa</option>
<option value="MasterCard">MasterCard</option>
</select>
<font color="orangered" size="+1"><tt><b>*</b></tt></font>
</td>
</tr>
<tr <?php if(in_array('cc_num', $error_fields)) { echo "bgcolor=\"FFCCCC\"";}?>>
<td align="left">
<p>Credit Card Number <br /></p>
</td>
<td align="left">
<input name="cc_num" type="text" value="<?=$_POST['cc_num']?>" maxlength="100" size="25" />
<font color="orangered" size="+1"><tt><b>*</b></tt><br /><font face="arial" size="1" color="#FF0000"><b>(numbers only, no dashes please)</b></font></font>
</td>
</tr>
<tr <?php if(in_array('exp_dat_mon', $error_fields)) { echo "bgcolor=\"FFCCCC\"";}?><?php if(in_array('exp_dat_yea', $error_fields)) { echo "bgcolor=\"FFCCCC\"";}?>>
<td align="left">
<p>Expiration Date </p>
</td>
<td align="left">
<select name="exp_dat_mon" size="1">
<?php if(!isset($_POST['exp_dat_mon'])) { echo "<option value=\"\">Select Month</option>";}?>
<?php echo month_display($***_month, $_POST['exp_dat_mon']); ?>"
</select>
<select name="exp_dat_yea" size="1">
<option value="<?=$_POST['exp_dat_yea']?>"><?=$_POST['exp_dat_yea']?></option>
<option value="2008">2008</option>
<option value="2009">2009</option>
<option value="2010">2010</option>
<option value="2011">2011</option>
<option value="2012">2012</option>
<option value="2013">2013</option>
<option value="2014">2014</option>
<option value="2015">2015</option>
<option value="2016">2016</option>
<option value="2017">2017</option>
<option value="2018">2018</option>
<option value="2019">2019</option>
<option value="2020">2020</option>
<option value="2021">2021</option>
<option value="2022">2022</option>
</select>
<font color="orangered" size="+1"><tt><b>*</b></tt></font>
</td>
</tr>
<tr <?php if(in_array('cc_name', $error_fields)) { echo "bgcolor=\"FFCCCC\"";}?>>
<td align="left">
<p>Names As It <br />
Appears On Card </p>
</td>
<td align="left">
<input name="cc_name" type="text" value="<?=$_POST['cc_name']?>" maxlength="100" size="25" />
<font color="orangered" size="+1"><tt><b>*</b></tt></font>
</td>
</tr>
<tr>
<td colspan="2">
<table width="640">
<tr><td colspan="4"><hr noshade="noshade" /></td></tr>
<tr><td colspan="4"><font face="arial" size="3" color="#FF0000">STEP 3</FONT></td></tr>
<tr>
<td align="left" valign="top" class="tabletitles">LOT No.</td>
<td align="left" valign="top" class="tabletitles">DESCRIPTION</td>
<td align="left" valign="top" class="tabletitles">MAX, +1 or PHONE</td>
<td align="left" valign="top" class="tabletitles">BID AMOUNT</td>
</tr>
<?php
for($x = 1; $x < 16; $x++) {
?>
<tr>
<td>
<input name="lot<?=$x?>" type="text" value="<?=$_POST['lot' . $x]?>" maxlength="90" size="15" />
</td>
<td>
<input name="lot_desc<?=$x?>" type="text" value="<?=$_POST['lot_desc' . $x]?>" maxlength="100" size="50" />
</td>
<td>
<input name="lot_max<?=$x?>" type="text" value="<?=$_POST['lot_max' . $x]?>" maxlength="90" size="30" />
</td>
<td>
<input type=text name="lot_max_bid<?=$x?>" maxlength="90" size="30" value="<?=$_POST['lot_max_bid' . $x]?>" onBlur="this.value=formatCurrency(this.value);">
<!-- old input field without javascript currency formatter
<input name="lot_max_bid<?=$x?>" type="text" value="<?=$_POST['lot_max_bid' . $x]?>" />
-->
</td>
</tr>
<?php
?>
</table>
</td>
</tr>
<tr>
<td colspan="2">
<p><br /><br /><p>
<input type="checkbox" name="agree" value="yes" <?php if($_POST['agree'] == 'yes') { echo "checked";}?>> <b>I have read and accept the <a href="http://langsauction.com/CONDITIONS OF SALE.pdf" target="_blank"><font color="#FF0000">Conditions of Sale (required)</b></a>
</p>
<br />
</td>
</tr>
<tr>
<td align="right" colspan="2">
<hr noshade="noshade" />
<input type="reset" value="Reset" />
<input type="submit" name="submit" value="Submit " />
</td>
</tr>
</table>
</center>
</form>
<br>
<hr width="100%" size="3" /><br>
<p align="center" class="footer">Lang's Auction, Inc. • 663 Pleasant Valley Road • Waterville, NY 13480 </p>
<p align="center" class="footer">Phone: 315-841-4623 • Fax: 315-841-8934 • <a href="mailto:[email protected]">[email protected]</a></p>
<br />
<hr width="75%" size="3" />
<p align="center" class="footer"> </p>
<div align="center"><i>© 2012 Lang's Auction, Inc. All rights reserved.</i></div>
</p>
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-17131030-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
</script>
</body>
</html>
<!--- table bottom of main body content --> -
Submit form button on fill in form
How do I change default message in email in the submit form button? It says "form attached"' etc.
I tried java script and it worked for most, but iPad users couldn't select the buttonthank you for your response. I really don't want to customize the form, I just wanted to know if there is a way to modify the default language in the email message from the submit button. The body says:
Form Returned: Class-Reg-Test-09-04-12.pdf
The attached file is the filled-out form. Please open it to review the data.
Thanks - I am looking into an Acrobat class.
Sent from my iPad -
Submit e-mail button returns "one of the specified recipients is not resolvable" error
I have created a form in Acrobat X and have an e-mail submit button which isn't quite working. In Acrobat X, when I click the button it proceeds normally (promts me to send an email with the form attached.) In Reader X, however, it returns the error message "one of the specified recipients is not resolvable". I know for sure that not only are the addresses just fine, but that the whole mailto: link is fine since it works in Acrobat without problem.
I've searched everywhere and there seems to be fairly limited issues with this error message, and the few posts I did see usually dealt with LifeCycle.
Here is the form so you can take a look at it: https://docs.google.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BxFDv0ai-FUPYTkzZWYyM2U tOTI1ZS00MDgzLWI5ZDUtNzg1YjUyMTRjMTc2&hl=en_US
I really appreciate any help anyone can give me!!!I made typo on this thread only. It is correct in the form. I removed the semi-colon. Same thing happens. It works fine on the email program on my desktop (Windows Mail) where I have corresponded with the email address for the registrar. It does not work on my laptop (Windows Live Mail) where I have not corresponded with the email address for the registrar.
It seems to occur when the mail program doesn't find a match. I press OK but then it shows "One of the specified recipients is not resolvable"
form is located at http://www.cslittleleague.com/wp-content/uploads/2014/01/CSLL-Reg-Form-8.pdf -
Submit webform as case from event module
So as most BC people will know, any webform implemented on an event will actually subscribe the person as an attendee to the event.
What I'm trying to accomplish, is to add a secondary form, so people can submit their details and receive a brochure for that event, not yet subscribe to it! So the webform's autoresponder will send upon completion, containing a link to the brochure.
My problem is though that the secondary form is subscribing them to the event, instead of treating it as a regular form. Anyone know of workarounds or how to force a webform to function like a regular webform?Check the below links :
Re: How to execute report in Background from Dialog process?
Re: Reg List..
http://www.sapbrainsonline.com/FAQs/TECHNICAL/SAP_ABAP_Transactions_FAQ.html ( Search here like submit)
Thanks
Seshu -
OIM Champs,
Consider the following scenario:
Client has 5 different self reg pages in their application exposed (not OIM self reg page). New Users who register from all these need to be provisioned to OIM. For existing users, underlying OIM will have identity seeding and target recon with 3 systems done. Email address is Unique ID, user registers with email ID. However, xisting users can try to re-register. So we need to implement the following:
For a user registering, check if user exists in 2 target systems out of 3, if yes, then redirect him to appropriate page (client app + OAM) will do this. If not, then complete registration and provision user to OIM.
Thinking of the following to implement this:
Extend client registration pages to call a Servlet on HTTP post (submit) action. From the servlet code, check using OIM APIs if user is present and if has 2 out of 3 resources in resource profile. Return the result. If not present, then using OIM APIs provision user in OIM.
I haven't done much Java programming, hence confirming this approach. If there is a better way to do this, please let know.
Thanks!Duplicate, sorry!
-
I have a seed class. I populate that seed class using script discovery and it has attribute 1,2 and 3. Those 3 attributes are all populated via the script discovery too.
Now I created a new application class which use the seed class as target. The criteria is if attribute 1 equal to a certain value. Here comes the question, how to create this discovery? In authoring console the options are registry discovery, script discovery
and custom discovery. Since attribute 1 is already populated in seed class using script, I think I can use that instead of doing another script discovery for the new application class.
However I didn't find a way to do that. Any suggestions?I pasted the base seed MP as following.
The base MP has two classes: "MyBaseMP.MyApps.Candidates" and "MyBaseMP.MyApps".
"MyBaseMP.MyApps.Candidates" is created from "Windows.Computer" class. Then it is discovered by "MyBaseMP.MyApps.Candidates.RegDiscvoery".
"MyBaseMP.MyApps" is created from "Windows.Local.Application" class. It is then discovered by "MyBaseMP.MyApps.ScriptDiscovery". This script discovery is targeting on "MyBaseMP.MyApps.Candidates" class. The script
also populated 5 attribute for "MyBaseMP.MyApps" and they are APPLICATION, LOB, GROUP, ENVIRONMENT and STATE.
This base MP works as expected.
Now I want to create a new custom MP. The new MP has a new class "MyFinanceApps" created from "MyBaseMP.MyApps". The service model is very simple just like following
<TypeDefinitions>
<EntityTypes>
<ClassTypes>
<ClassType ID="MyFinanceApps" Accessibility="Internal" Abstract="false" Base="MyBaseMP!MyBaseMP.MyApps" Hosted="true" Singleton="false" />
</ClassTypes>
</EntityTypes>
</TypeDefinitions>
I want to populate this class if LOB attribute echos to "Finance". How to make this discovery then? Sure I can create another script discovery but since those values already discovered in the seed class, is there any way I can use them?
The MyBaseMP is as following:
<ManagementPack ContentReadable="true" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<Manifest>
<Identity>
<ID>MyBaseMP</ID>
<Version>1.0.0.0</Version>
</Identity>
<Name>MyBaseMP</Name>
<References>
<Reference Alias="SC">
<ID>Microsoft.SystemCenter.Library</ID>
<Version>6.1.7221.0</Version>
<PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
</Reference>
<Reference Alias="Windows">
<ID>Microsoft.Windows.Library</ID>
<Version>6.1.7221.0</Version>
<PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
</Reference>
<Reference Alias="Health">
<ID>System.Health.Library</ID>
<Version>6.1.7221.0</Version>
<PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
</Reference>
<Reference Alias="System">
<ID>System.Library</ID>
<Version>6.1.7221.0</Version>
<PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
</Reference>
</References>
</Manifest>
<TypeDefinitions>
<EntityTypes>
<ClassTypes>
<ClassType ID="MyBaseMP.MyApps" Accessibility="Internal" Abstract="false" Base="Windows!Microsoft.Windows.LocalApplication" Hosted="true" Singleton="false">
<Property ID="APPLICATION" Type="string" Key="true" CaseSensitive="false" Length="256" MinLength="0" />
<Property ID="GROUP" Type="string" Key="false" CaseSensitive="false" Length="256" MinLength="0" />
<Property ID="LOB" Type="string" Key="false" CaseSensitive="false" Length="256" MinLength="0" />
<Property ID="STATE" Type="string" Key="false" CaseSensitive="false" Length="256" MinLength="0" />
<Property ID="APP_TYPE" Type="string" Key="false" CaseSensitive="false" Length="256" MinLength="0" />
<Property ID="ENVIRONMENT" Type="string" Key="false" CaseSensitive="false" Length="256" MinLength="0" />
</ClassType>
<ClassType ID="MyBaseMP.MyApps.Candidates" Accessibility="Internal" Abstract="false" Base="Windows!Microsoft.Windows.Computer" Hosted="false" Singleton="false" />
</ClassTypes>
</EntityTypes>
</TypeDefinitions>
<Monitoring>
<Discoveries>
<Discovery ID="MyBaseMP.MyApps.Candidates.RegDiscovery" Enabled="true" Target="Windows!Microsoft.Windows.Computer" ConfirmDelivery="false" Remotable="true" Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryClass TypeID="MyBaseMP.MyApps.Candidates" />
</DiscoveryTypes>
<DataSource ID="DS" TypeID="Windows!Microsoft.Windows.FilteredRegistryDiscoveryProvider">
<ComputerName>$Target/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<RegistryAttributeDefinitions>
<RegistryAttributeDefinition>
<AttributeName>FoundAppKey</AttributeName>
<Path>SOFTWARE\MyCompany\SystemCenter</Path>
<PathType>0</PathType>
<AttributeType>0</AttributeType>
</RegistryAttributeDefinition>
</RegistryAttributeDefinitions>
<Frequency>180</Frequency>
<ClassId>$MPElement[Name="MyBaseMP.MyApps.Candidates"]$</ClassId>
<InstanceSettings>
<Settings>
<Setting>
<Name>$MPElement[Name="Windows!Microsoft.Windows.Computer"]/PrincipalName$</Name>
<Value>$Target/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</Value>
</Setting>
</Settings>
</InstanceSettings>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Values/FoundAppKey</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">true</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</DataSource>
</Discovery>
<Discovery ID="MyBaseMP.MyApps.ScriptDiscovery" Enabled="true" Target="MyBaseMP.MyApps.Candidates" ConfirmDelivery="false" Remotable="true" Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryClass TypeID="MyBaseMP.MyApps" />
</DiscoveryTypes>
<DataSource ID="DS" TypeID="Windows!Microsoft.Windows.TimedScript.DiscoveryProvider">
<IntervalSeconds>300</IntervalSeconds>
<SyncTime />
<ScriptName>MyApps.Script.Discovery.vbs</ScriptName>
<Arguments>$MPElement$ $Target/Id$ $Target/Property[Type="Windows!Microsoft.Windows.Computer"]/DNSName$ $MPElement$</Arguments>
<ScriptBody><![CDATA[
Option Explicit
' Definitions for Registry Walking
Const HKEY_LOCAL_MACHINE = &H80000002
Dim oReg
Dim arrValues, arrSubKeys
Dim strComputer, strKeyPath, subkey, strProperty, strArrValue
' Define where the App Subkeys are located, strKeyPath MUST end with a slash!
strKeyPath = "SOFTWARE\MyCompany\SystemCenter\"
strComputer = "."
Dim WshShell, bKey
' Definitions for SCOM Discovery
Dim oAPI
Set oAPI = CreateObject("MOM.ScriptAPI")
Dim oArgs
Set oArgs = WScript.Arguments
' Check for the required script arguments.
if oArgs.Count < 3 Then
' If the script is called without the required arguments,
' create an information event and then quit.
Call oAPI.LogScriptEvent(WScript.ScriptName,101,0, _
"script was called with fewer than three arguments (" & oArgs.Count & " arguments) and was not executed.")
Wscript.Quit -1
End If
Dim SourceID, ManagedEntityId, TargetComputer
SourceID = oArgs(0) ' The GUID of the discovery object that launched the script.
ManagedEntityId = oArgs(1) ' The GUID of the computer class targeted by the script.
TargetComputer = oArgs(2) ' The FQDN of the computer targeted by the script.
Dim oDiscoveryData, oInst
Set oDiscoveryData = oAPI.CreateDiscoveryData(0, SourceID, ManagedEntityId)
' Functions for Registry Walking
' Create Shell Object
Set WshShell = WScript.CreateObject("WScript.Shell")
' Create WMI Object, and check for existence
On Error Resume Next
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
strComputer & "\root\default:StdRegProv")
Select Case Err.Number
Case 0:
'Error Code 0 = 'success'
'Wscript.Echo "DEBUG: Opened WMI"
Case Else
'Any other error code is a failure code
Notify("ERROR: Can not open WMI")
Wscript.Quit 1
End Select
On Error Goto 0 'Turn error reporting back on
' Check to ensure first level reg key exists
If RegistryKeyExists("HKLM\" & strKeyPath) Then
If oReg.EnumKey(HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys) > 0 Then
' We have NO subkeys
Notify("ERROR: No Subkeys defined")
Wscript.Quit 1
End if
Else
Notify("DEBUG: Key [" & strKeyPath & "] doesn't exist")
Wscript.Quit 1
End If
'Check size of arrSubKeys for sub keys
If Not IsArray(arrSubKeys) Then
' We have NO subkeys
Notify("ERROR: No Subkeys defined")
Wscript.Quit 1
End If
For Each subkey In arrSubKeys
'Wscript.Echo "DEBUG: subkey = " & subkey
strProperty = ""
'Check to ensure Subkey Exists
If RegistryKeyExists("HKLM\" & strKeyPath & "\" & subkey & "\") Then
'Get Values under each key
'Wscript.Echo "DEBUG: Create OBJECT"
' Discovered the application. Create the application instance.
Set oInst = oDiscoveryData.CreateClassInstance("$MPElement[Name='MyBaseMP.MyApps']$")
' Define Property
Call oInst.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", TargetComputer)
If RegistryValueExists("HKLM\" & strKeyPath & "\" & subkey & "\ENVIRONMENT") Then
'Wscript.Echo "DEBUG: Value " & strArrValue & " found"
strProperty = WshShell.RegRead("HKLM\" & strKeyPath & "\" & subkey & "\ENVIRONMENT")
Else
'Wscript.Echo "DEBUG: value " & strArrValue & " NOT found"
strProperty = "NONEXISTANT"
End If
Call oInst.AddProperty("$MPElement[Name='MyBaseMP.MyApps']/ENVIRONMENT$", strProperty)
If RegistryValueExists("HKLM\" & strKeyPath & "\" & subkey & "\STATE") Then
'Wscript.Echo "DEBUG: Value " & strArrValue & " found"
strProperty = WshShell.RegRead("HKLM\" & strKeyPath & "\" & subkey & "\STATE")
Else
'Wscript.Echo "DEBUG: value " & strArrValue & " NOT found"
strProperty = "NONEXISTANT"
End If
Call oInst.AddProperty("$MPElement[Name='MyBaseMP.MyApps']/STATE$", strProperty)
If RegistryValueExists("HKLM\" & strKeyPath & "\" & subkey & "\APP_TYPE") Then
'Wscript.Echo "DEBUG: Value " & strArrValue & " found"
strProperty = WshShell.RegRead("HKLM\" & strKeyPath & "\" & subkey & "\APP_TYPE")
Else
'Wscript.Echo "DEBUG: value " & strArrValue & " NOT found"
strProperty = "NONEXISTANT"
End If
Call oInst.AddProperty("$MPElement[Name='MyBaseMP.MyApps']/APP_TYPE$", strProperty)
If RegistryValueExists("HKLM\" & strKeyPath & "\" & subkey & "\LOB") Then
'Wscript.Echo "DEBUG: Value " & strArrValue & " found"
strProperty = WshShell.RegRead("HKLM\" & strKeyPath & "\" & subkey & "\LOB")
Else
'Wscript.Echo "DEBUG: value " & strArrValue & " NOT found"
strProperty = "NONEXISTANT"
End If
Call oInst.AddProperty("$MPElement[Name='MyBaseMP.MyApps']/LOB$", strProperty)
If RegistryValueExists("HKLM\" & strKeyPath & "\" & subkey & "\GROUP") Then
'Wscript.Echo "DEBUG: Value " & strArrValue & " found"
strProperty = WshShell.RegRead("HKLM\" & strKeyPath & "\" & subkey & "\GROUP")
Else
'Wscript.Echo "DEBUG: value " & strArrValue & " NOT found"
strProperty = "NONEXISTANT"
End If
Call oInst.AddProperty("$MPElement[Name='MyBaseMP.MyApps']/GROUP$", strProperty)
'Set Application Name
'Wscript.Echo "SET APPLICATION NAME: " & subkey
Call oInst.AddProperty("$MPElement[Name='MyBaseMP.MyApps']/APPLICATION$", subkey)
'Wscript.Echo "SUBMIT INSTANCE"
Call oDiscoveryData.AddInstance(oInst)
Else
' Registry Sub Key does not exist
Notify("ERROR: A found registry subkey, [" & subkey & "] doesn't actually exist")
End If
Next
' Submit the discovery data for processing.
Call oAPI.Return(oDiscoveryData)
' A helper function to remove the extension from a file name.
Function StripExtension (sFile)
StripExtension = Left(sFile, Len(sFile) -4)
End Function
'* Registry Value Exists (Function)
'* Returns a value (true / false)
'This function checks to see if a passed registry value exists, and
'returns true if it does
'Requirements: The registry value you are looking for (RegistryValue)
Function RegistryValueExists (RegistryValue)
'Ensure the last character is NOT a backslash (\) - if it is, we aren't looking for a value
If (Right(RegistryValue, 1) = "\") Then
'It's not a registry value we are looking for
'Wscript.Echo "No slash....returning false"
RegistryValueExists = false
Else
'If there isnt the value when we read it, it will return an error, so we need to resume
On Error Resume Next
'Try reading the value
WshShell.RegRead RegistryValue
'Catch the error
Select Case Err.Number
Case 0:
'Error Code 0 = 'success'
RegistryValueExists = true
Case Else
'Any other error code is a failure code
RegistryValueExists = false
End Select
'Turn error reporting back on
On Error Goto 0
End If
End Function
'* Registry Key Exists (Function)
'* Returns a value (true / false)
'This function checks to see if a passed registry key exists, and
'returns true if it does
'Requirements: The registry key you are looking for (RegistryKey)
'Note: RegistryKey MUST end in a backslash (\), or FALSE will be returned
Function RegistryKeyExists (RegistryKey)
Dim errDescription
'Ensure the last character is a backslash (\) - if it isn't, we aren't looking for a key
If (Right(RegistryKey, 1) <> "\") Then
'It's not a registry key we are looking for
RegistryKeyExists = false
Else
'If there isnt the key when we read it, it will return an error, so we need to resume
On Error Resume Next
'Try reading the key
WshShell.RegRead RegistryKey
'Catch the error
' Wscript.Echo "Err.Number = " & Err.Number
' Wscript.Echo "Err.Message = " & Err.Message
Select Case Err.Number
'Error Code 0 = 'success'
Case 0:
RegistryKeyExists = True
'Wscript.Echo "DEBUG: Case 0: Key Exists"
'This checks for the (Default) value existing (but being blank); as well as key's not existing at all (same error code)
Case &h80070002:
'Read the error description, removing the registry key from that description
ErrDescription = Replace(Err.description, RegistryKey, "")
'Clear the error
Err.clear
'Read in a registry entry we know doesn't exist (to create an error description for something that doesnt exist)
WshShell.RegRead "HKEY_ERROR\"
'The registry key exists if the error description from the HKEY_ERROR RegRead attempt doesn't match the error
'description from our RegistryKey RegRead attempt
If (ErrDescription <> Replace(Err.description, "HKEY_ERROR\", "")) Then
RegistryKeyExists = true
Else
RegistryKeyExists = false
End If
'Any other error code is a failure code
Case Else:
RegistryKeyExists = false
End Select
'Turn error reporting back on
On Error Goto 0
End If
End Function
Function Notify(strNotifyMessage)
Call oAPI.LogScriptEvent(Wscript.Name,101,0, strNotifyMessage)
End Function]]></ScriptBody>
<TimeoutSeconds>60</TimeoutSeconds>
</DataSource>
</Discovery>
</Discoveries>
</Monitoring>
<LanguagePacks>
<LanguagePack ID="ENU" IsDefault="true">
<DisplayStrings>
<DisplayString ElementID="MyBaseMP">
<Name>MyBaseClass</Name>
</DisplayString>
<DisplayString ElementID="MyBaseMP.MyApps">
<Name>MyBaseMP.MyApps</Name>
</DisplayString>
<DisplayString ElementID="MyBaseMP.MyApps" SubElementID="APPLICATION">
<Name>APPLICATION</Name>
</DisplayString>
<DisplayString ElementID="MyBaseMP.MyApps.Candidates">
<Name>MyBaseMP.MyApps.Candidates</Name>
</DisplayString>
<DisplayString ElementID="MyBaseMP.MyApps.Candidates.RegDiscovery">
<Name>MyBaseMP.MyApps.Candidates.RegDiscovery</Name>
</DisplayString>
<DisplayString ElementID="MyBaseMP.MyApps.ScriptDiscovery">
<Name>MyBaseMP.MyApps.ScriptDiscovery</Name>
<Description />
</DisplayString>
</DisplayStrings>
</LanguagePack>
</LanguagePacks>
</ManagementPack>
Maybe you are looking for
-
''''''How Can I Get My Saved Bookmarks Without My Sync Key. I Have My Email & Password Of Sync Account. I Am Using Firefox 8! Plz Help!''''''
-
Getting only the rows committed in the database
Hi, I have one strange requirement in my application. I need to fetch the rows from a particular table in the database which are committed. I mean there are other view objects for that table and those view objects are manipulating the data in that ta
-
I upgraded my operating system to Snow Leopard 10.6.8 and now my Lexmark X4875 will not print wirelessly and neither Apple, Lexmark or Belkin can work out why. Has anyone else experienced this and knows what to do? Thanks
-
Brand new iPhone 3GS 32GB, put sim card in, turned on, Slide for Emergency.
I just bought an iPhone 3GS with 32GB black, I used the pin to eject the sim card socket, and put the sim card in.then i pressed the silver power button at the top right corner for 3 seconds, it turned on with the gray apple. Then it comes to "Slide
-
Thinking about Final Cut Express
I am planning on getting an HD camcorder further down the line. For now all I have is my digital camera that records video. My question is, can Final Cut Express 4 work with .mpg and .mov files? And if I get FC4, is there any reason to still use iMov