Readind Data From ID/IF Clusters (PU12)
Hi,
I want to read data from Clusters ID and IF of table PCL2, they store historical data of PU12 Interface Toolbox. The macro that I will be using is rp-imp-c2-id, I am not sure how to interpret the data stored in clustd field? Does anybody know FMs that read the data from those clustd fields for ID and IF clusters? (Not RU)
I appreciate any help in this regard.
Thanks.
too late!
Similar Messages
-
Readind data from https source
I have a site, and it uses SecureSocketExtension for security reasons. I have a 3'rd site applet, which is used to display data, accessed by https protocol. When the applet tries to read data it gets an exception Certificate not found or somethin like this.
p.s. I understand that I have to import the certificate, but I'm completely newbie in his things.Hello, once again. Here is my code:
URL url = new URL("https://my-site");
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
connection.setSSLSocketFactory((SSLSocketFactory) SSLSocketFactory.getDefault());
connection.setHostnameVerifier(new HostnameVerifier() {
public boolean verify(String arg0, SSLSession arg1) {
return true;
connection.connect();When I launch it, I get an excteption:
Exception in thread "main" javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(Unknown Source)
at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Unknown Source)
at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Unknown Source)
at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(Unknown Source)
at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(Unknown Source)
at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Unknown Source)
at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(Unknown Source)
at java_test.SSLTest2.main(SSLTest2.java:50)
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.validator.PKIXValidator.doBuild(Unknown Source)
at sun.security.validator.PKIXValidator.engineValidate(Unknown Source)
at sun.security.validator.Validator.validate(Unknown Source)
at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source)
at com.sun.net.ssl.internal.ssl.JsseX509TrustManager.checkServerTrusted(Unknown Source)
... 11 more
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(Unknown Source)
at java.security.cert.CertPathBuilder.build(Unknown Source)
... 16 moreI have a Certificate, I understand it usually called a "self signed" at my-site. IE/Firefox/Opera normally
work with it.
I've tried to install the certificate, by using:
keytool.exe -import -storetype jks -v -trustcacerts -file my-site.cert -storepass my-siteThe picture does not change. What else can I try to do? -
Fetching data from 'Z' clusters
Hi Gurus,
We an existing 'Z' cluster in the HR system.I want to know that how we can read data from such 'Z' clusters.
I tried finding reagrding macros and other methods but it seems that macros can be used to read standard cluster tables.
Please provide your inputs for the same.
Regards,
ShleshaHello Shlesha,
Do you mean cluster tables or data cluster(INDX type tables)?
If you want to read data from INDX table you've to use [IMPORT FROM DATABASE|http://help.sap.com/abapdocu_702/en/abapimport_medium.htm#!ABAP_ALTERNATIVE_4@4@] statement.
Cheers,
Suhas
PS: You can use the same statement to read custom data clusters. It is not restricted to INDX only! -
Querying data across different cache-clusters
Hi,
Say there are multiple clusters each containing DIFFERENT sets of cached data. I would like to know if someone knows how an application from within one cluster can read/query the data from the DIFFERENT clusters "DIRECTLY". Would we need to code in Coherence extend protocol API (if there is one such) in this case ? Does anyone know or done this ?Hi,
Yes you would need to use Extend to be able to see one cluster from another. It is pretty straight forward, you just configure the cache mappings in the same way you would for any remote caches.
JK -
How to fill a table with data from columns & rows from a txt file
I am trying to fill say:
Myname Myclass Mycollege
Mohan MD Stanford
from a txt file into 3 columns of a table. I can easily do it into a textarea component by
clicking a button:
try{
FileReader fr = new FileReader("F:/CreatorProjects1/stan.txt");
BufferedReader br = new BufferedReader(fr);
String s1="";
String s="";
stantxtarea.setValue(s);
while((s=br.readLine())!=null) {
s1 = s1+s;
s1=s1+"\n";
stantxtarea.setValue(s1);
br.close();
fr.close();
} catch(Exception e) {
e.printStackTrace();
return null;
All table components seem to need a database. I do not use any database. I run exe files that give output to txt files. How to solve it?
I appreciate any help in this regard...
dr.mohan raothere may be another way. This is some thing some thing I can recommend. You can create property type of ObjectListDataProvider in session or application based on the scope you required. Create web bean class with property you want to show in the column (say col1, col2, col2). Initialize the list property like similar below
List dataList = new ArrayList();
ObjectListDataProvider mytableprops = new ObjectListDataProvider();
try {
//start loop read data from your txt file
//create instance of web bean for each line
//add web bean instance into dataList
//end of loop readind data from txt file
oldpins.setList(dataList );
oldpins.setObjectType(NotificationProfileBean.class);
} catch (Exception ee1){;}
return oldpins;
Sri Thuraisamy -
Archive - Purge data from F1 and U1 clusters
Hello Experts,
I have been given the task of purging data from the F1 cluster, Remuneration Statement forms, and the U1 cluster, Tax Reporter forms, in PCL4. I was hoping to accomplish this by using an archive function to delete the data but not store the archived files. I have not been successful in finding much information about purging from these clusters. I am looking for any advice anyone can provide or a direction to take to reduce this data. Thank you in advance for your assistance.Martin,
which would help keep everything intact
I don't know what that means. The whole purpose of archiving is to remove data from the 'ready' database and place it somewhere else. Leaving it intact means not archiving at all.
In the archiving process, data is selected and copied into some sort of storage medium that typically has a lower state of availability than un-archived data. The business decides what level of availability is acceptable, and the archiving policy (e.g., how long should the data remain archived before it is finally physically deleted forever).
So 'intact' is a bit vague. All the bits of data that the business decide are important are replicated 100% in the archive medium, validated, and then the source records that were archived are physically deleted from the ready database. Functionally, all archived data is intact, it just may be in another format.
I have never heard of a major ERP system that did not offer archiving in some form. There are also many third party vendors who offer archiving for the major ERP packages.
Level of success is hard to predict. There are tools available as standard in SAP that monitor critical factors: memory access, disk access, response times, etc etc etc. Here too there are third party tools that measure critical factors. You can run these before and after the archiving process to measure what success you have had.
I have never seen anyone who will stand up and say "if you archive x million records from your ready database, you will see a performance increase of y percent." There are too many variables. As they say in the MPG ads, "Your results may vary". You usually can get some qualitative numbers by testing your archiving process in a test or dev system.
Best Regards,
DB49 -
Example on extracting time data from clusters
Hi Experts,
Please send me a sample code for time data extraction from clusters. or steps to extract time data from clusters.
Thank you.
Regards,
Admir.
Points will be rewarded.Hi
see the sample report for time data fetching
But ime data is not fetched from Clusters, only payroll data is fetched from clusters
Time related infotypes are 2000 to 2999.
REPORT zh_absence_quota
NO STANDARD PAGE HEADING
MESSAGE-ID zh_msg
LINE-SIZE 169
LINE-COUNT 60(1).
T A B L E S D E C L A R A T I O N S
TABLES: pernr, " Logical PNP
t001p, " Personnel Subarea
t529u, " Employment Status
t500p, " Personnel Area
t501, " Employee Group
t503k, " Employee Subgroup
t549a, " Payroll Area
t554s, " Absence Type
t554t, " Absence Type Texts
t556a, " Quota Type
t527x, " Orgn. Unit
t556b, " Quota Type Text
pa0003. " Payroll Status
INFOTYPES:
0000, " Actions
0001, " Organizational Assignment
2006, " Absence Quota
2001. " Absences
T Y P E S D E C L A R A T I O N S
Employee Absence Structure
TYPES: BEGIN OF s_2001,
pernr TYPE persno, " Personal Number
awart TYPE awart, " Absence Type
subty TYPE subty, " Sub Type
endda TYPE endda, " End date
begda TYPE begda, " Begin date
abrtg TYPE abrtg, " Absence days
ename TYPE emnam, " employee Name
atext TYPE abwtxt, " Absence Type Text
END OF s_2001.
Employee Absence Quota Structure
TYPES: BEGIN OF s_2006,
pernr TYPE persno, " Personal Number
ktart TYPE abwko, " Absence Quota Type
year(4) TYPE n, " Year
subty TYPE subty, " Sub Type
endda TYPE endda, " End date
begda TYPE begda, " Begin date
anzhl TYPE ptm_quonum, " Absence Entitlement days
ename TYPE emnam, " employee Name
ktext TYPE kotxt, " Absence Type Text
kverb TYPE kverb, " Deduction Quota days
anzhb TYPE ptm_quonum, " Balance days
END OF s_2006.
Combined Employee Absence and Quota Structure
TYPES: BEGIN OF s_rep,
pernr TYPE persno, " Personal Number
ktart TYPE abwko, " Absence Quota Type
year(4) TYPE n, " Year
anzhl TYPE ptm_quonum, " Absence Entitlement days
kverb TYPE kverb, " Deduction Quota days
anzhb TYPE ptm_quonum, " Balance days
ktext TYPE kotxt, " Quota Type Text
awart TYPE awart, " Absence Type
abrtg TYPE abrtg, " Absence days
ename TYPE emnam, " employee Name
atext TYPE abwtxt, " Absence Type Text
endda TYPE endda, " End date
begda TYPE begda, " Begin date
END OF s_rep.
Declaration of Variables
DATA : gv_atext TYPE abwtxt, " Absence Type Text
gv_ktext TYPE kotxt, " Absence Type Text
gv_title1 TYPE sylisel, " Report title
gv_year(4) TYPE c, " Year
gv_mon(2) TYPE c, " Month
gv_hrs TYPE abwtg, " Hours
gv_date TYPE sydatum, " Date
gv_date1 TYPE sydatum, " Date
gv_dial. " Color flag
Declaration of Constants
CONSTANTS :
c_x TYPE c VALUE 'X', " Sign
c_1 TYPE persg VALUE '1', " Emp Group
c_pernr(8) TYPE n VALUE '00000000', " Pernr
c_moabw TYPE moabw VALUE '01', " Per SA Grouping
c_mozko TYPE mozko VALUE '01', " Per SA Grouping
c_mopgk TYPE mopgk VALUE '1', " Emp SGrp Grouping
c_endda TYPE sydatum VALUE '99991231', " End Date
c_val1(2) TYPE c VALUE '31', " Date Type
c_val2(2) TYPE c VALUE '12', " Date Type
c_val LIKE p0041-dar01 VALUE '01', " Date Type
c_date1 LIKE sy-datum VALUE '18000101'. " Date
I N T E R N A L T A B L E S D E C L A R A T I O N S
DATA: i_2001 TYPE STANDARD TABLE OF s_2001 WITH HEADER LINE,
i_2006 TYPE STANDARD TABLE OF s_2006 WITH HEADER LINE,
i_rep1 TYPE STANDARD TABLE OF s_2006 WITH HEADER LINE,
i_rep TYPE STANDARD TABLE OF s_rep WITH HEADER LINE.
S E L E C T I O N S C R E E N
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_ktart FOR t556a-ktart, " Absence Quota Type
s_awart FOR t554s-subty. " Absence Type
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(33) text-003. " Quota & Absence
PARAMETERS: p_qa RADIOBUTTON GROUP rb1.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(33) text-004. " Quota
PARAMETERS: p_q RADIOBUTTON GROUP rb1.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(33) text-005. " Absence
PARAMETERS: p_a RADIOBUTTON GROUP rb1.
SELECTION-SCREEN END OF LINE.SELECTION-SCREEN END OF BLOCK b2.
I N I T I A L I Z A T I O N *
INITIALIZATION.
A T S E L E C T I O N - S C R E E N *
AT SELECTION-SCREEN.
Validate the screen fields
PERFORM validate_screen.
S T A R T - O F - S E L E C T I O N *
START-OF-SELECTION.
Selection of Period
PERFORM get_period.
Get PERNR from LDB
GET pernr.
IF p0000-stat2 <> '0'.
Get the data from PA0001,PA2001, PA2006
PERFORM get_pers_data.
ENDIF.
T O P - O F - P A G E *
TOP-OF-PAGE.
Header of the List
PERFORM header.
E N D - O F - P A G E *
Footer
END-OF-PAGE.
IF p_qa = c_x.
Display both Absence and Quota Data
WRITE /1(188) sy-uline.
ELSEIF p_q = c_x.
Display only Quota Data
WRITE /1(114) sy-uline.
ELSEIF p_a = c_x.
Display only Absence Data
WRITE /1(125) sy-uline.
ENDIF.
E N D - O F - S E L E C T I O N *
END-OF-SELECTION.
Combine the Absence and Quota Data
PERFORM append_data.
IF p_qa = c_x.
Display both Absence and Quota Data
PERFORM display_qa_data.
ELSEIF p_q = c_x.
Display only Quota Data
PERFORM display_q_data.
ELSEIF p_a = c_x.
Display only Absence Data
PERFORM display_a_data.
ENDIF.
*& Form validate_screen
Validation of Selection Screen fields
FORM validate_screen .
Validation of Personnel Number
CLEAR pa0003.
IF NOT pnppernr[] IS INITIAL.
SELECT pernr
FROM pa0003 UP TO 1 ROWS
INTO pa0003-pernr
WHERE pernr IN pnppernr.
ENDSELECT.
IF sy-subrc <> 0.
MESSAGE e999 WITH 'Incorrect Personnel Number'(006).
ENDIF.
ENDIF.
Validation of Employee Status
CLEAR t529u.
IF NOT pnpstat2[] IS INITIAL.
SELECT SINGLE statv
INTO t529u-statv
FROM t529u
WHERE statv IN pnpstat2 AND
statn = '2' AND
sprsl = sy-langu.
IF sy-subrc <> 0.
MESSAGE e999 WITH 'Invalid Employee Status'(007).
ENDIF.
ENDIF.
Validation of Personnel Area
CLEAR t500p.
IF NOT pnpwerks[] IS INITIAL.
SELECT persa
FROM t500p UP TO 1 ROWS
INTO t500p-persa
WHERE persa IN pnpwerks.
ENDSELECT.
IF sy-subrc <> 0.
MESSAGE e999 WITH 'Incorrect Personnel Area'(008).
ENDIF.
ENDIF.
Validation of Personnel Sub Area
CLEAR t001p.
IF NOT pnpbtrtl[] IS INITIAL.
SELECT btrtl
FROM t001p UP TO 1 ROWS
INTO t001p-btrtl
WHERE btrtl IN pnpbtrtl.
ENDSELECT.
IF sy-subrc <> 0.
MESSAGE e999 WITH 'Incorrect Personnel Sub Area'(009).
ENDIF.
ENDIF.
Validation of Employee Group
CLEAR t501.
IF NOT pnppersg[] IS INITIAL.
SELECT persg
FROM t501 UP TO 1 ROWS
INTO t501-persg
WHERE persg IN pnppersg.
ENDSELECT.
IF sy-subrc <> 0.
MESSAGE e999 WITH 'Incorrect Employee Group'(010).
ENDIF.
ENDIF.
Validation of Employee Sub Group
CLEAR t503k.
IF NOT pnppersk[] IS INITIAL.
SELECT persk
FROM t503k UP TO 1 ROWS
INTO t503k-persk
WHERE persk IN pnppersk.
ENDSELECT.
IF sy-subrc <> 0.
MESSAGE e999 WITH 'Incorrect Employee Sub Group'(011).
ENDIF.
ENDIF.
Validation of Payroll Area
CLEAR t549a.
IF NOT pnpabkrs[] IS INITIAL.
SELECT abkrs
FROM t549a UP TO 1 ROWS
INTO t549a-abkrs
WHERE abkrs IN pnpabkrs.
ENDSELECT.
IF sy-subrc <> 0.
MESSAGE e999 WITH 'Incorrect Employee Payroll Area'(026).
ENDIF.
ENDIF.
Validation of Absence Type
CLEAR t554s.
IF NOT s_awart[] IS INITIAL.
SELECT subty
FROM t554s UP TO 1 ROWS
INTO t554s-subty
WHERE subty IN s_awart AND
moabw EQ c_moabw AND
endda EQ c_endda.
ENDSELECT.
IF sy-subrc <> 0.
MESSAGE e999 WITH 'Incorrect Employee Absence Type'(012).
ENDIF.
ENDIF.
Validation of Absence Quota Type
CLEAR t556a.
IF NOT s_ktart[] IS INITIAL.
SELECT ktart
FROM t556a UP TO 1 ROWS
INTO t556a-ktart
WHERE ktart IN s_ktart AND
mopgk EQ c_mopgk AND
mozko EQ c_mozko AND
endda EQ c_endda.
ENDSELECT.
IF sy-subrc <> 0.
MESSAGE e999 WITH 'Incorrect Employee Quota Type'(013).
ENDIF.
ENDIF.
ENDFORM. "validate_screen
*& Form get_period
Get the Correct Period based on Selection screen selection
FORM get_period.
CLEAR: gv_year,gv_mon, gv_date, gv_date1.
gv_year = sy-datum+0(4).
gv_mon = sy-datum+4(2).
IF pnptimr1 = c_x. " Current Date
pnpbegda = sy-datum.
pnpendda = sy-datum.
ELSEIF pnptimr2 = c_x. " Current Month
CONCATENATE gv_year gv_mon c_val INTO gv_date.
CONCATENATE gv_year gv_mon c_val1 INTO gv_date1.
pnpbegda = gv_date.
pnpendda = gv_date1.
ELSEIF pnptimr3 = c_x. " Current Year
CONCATENATE gv_year c_val c_val INTO gv_date.
CONCATENATE gv_year c_val2 c_val1 INTO gv_date1.
pnpbegda = gv_date.
pnpendda = gv_date1.
ELSEIF pnptimr4 = c_x. " Upto Today
pnpbegda = c_date1.
pnpendda = sy-datum.
ELSEIF pnptimr5 = c_x. " From Today
pnpbegda = sy-datum.
pnpendda = c_endda.
ELSE.
IF ( pnpbegda IS INITIAL AND pnpendda IS INITIAL ).
pnpbegda = c_date1.
pnpendda = c_endda.
ELSEIF pnpbegda IS INITIAL AND NOT pnpendda IS INITIAL.
pnpbegda = c_date1.
pnpendda = pnpendda.
ELSEIF NOT ( pnpbegda IS INITIAL AND pnpendda IS INITIAL ).
pnpbegda = pnpbegda.
pnpendda = pnpendda.
ENDIF.
ENDIF.
ENDFORM. "get_period
*& Form get_pers_data
Get the Absence and Quota Data from PA0001,PA2001,PA2006
FORM get_pers_data.
DATA: lv_year1(4) TYPE n,
lv_year2(4) TYPE n,
lv_date1 TYPE sydatum,
lv_date2 TYPE sydatum,
lv_anzhb TYPE ptm_quonum. " Last Year Balance days
Get data from Respective Infotypes
rp_provide_from_last p0001 space pnpbegda pnpendda.
Absence Data
LOOP AT p2001 WHERE pernr = pernr-pernr AND
begda GE pnpbegda AND
endda LE pnpendda.
IF p2001-awart IN s_awart.
i_2001-pernr = pernr-pernr.
i_2001-subty = p2001-subty.
i_2001-awart = p2001-awart.
i_2001-abrtg = p2001-abrtg.
i_2001-begda = p2001-begda.
i_2001-endda = p2001-endda.
READ TABLE p0001 WITH KEY pernr = p2001-pernr.
i_2001-ename = p0001-ename.
Get the Absence Type Text
CLEAR gv_atext.
SELECT SINGLE atext INTO gv_atext FROM t554t
WHERE sprsl = sy-langu AND
moabw = c_moabw AND
awart = p2001-awart.
IF sy-subrc = 0.
i_2001-atext = gv_atext.
ENDIF.
APPEND i_2001.
CLEAR i_2001.
ENDIF.
ENDLOOP.
Quota Data
LOOP AT p2006 WHERE pernr = pernr-pernr AND
begda GE pnpbegda AND
endda LE pnpendda.
IF p2006-ktart IN s_ktart.
i_2006-pernr = pernr-pernr.
i_2006-subty = p2006-subty.
i_2006-begda = p2006-begda.
i_2006-endda = p2006-endda.
i_2006-year = p2006-endda+0(4).
i_2006-ktart = p2006-ktart.
i_2006-anzhl = p2006-anzhl.
i_2006-kverb = p2006-kverb.
i_2006-anzhb = p2006-anzhl - p2006-kverb.
READ TABLE p0001 WITH KEY pernr = p2001-pernr.
i_2006-ename = p0001-ename.
Get the Quota Type Text
CLEAR gv_ktext.
SELECT SINGLE ktext INTO gv_ktext FROM t556b
WHERE sprsl = sy-langu AND
mopgk = c_mopgk AND
mozko = c_mozko AND
ktart = p2006-ktart.
IF sy-subrc = 0.
i_2006-ktext = gv_ktext.
ENDIF.
APPEND i_2006.
CLEAR i_2006.
ENDIF.
ENDLOOP.
For Vacation Quota (80) get the Balance of the Last Year and
add to the Current Year Quota
LOOP AT i_2006.
IF i_2006-ktart = '80'.
lv_year1 = i_2006-endda+0(4).
lv_year2 = lv_year1 - 1.
CONCATENATE lv_year2 '01' '01' INTO lv_date1.
CONCATENATE lv_year2 '12' '31' INTO lv_date2.
LOOP AT p2006 WHERE pernr = i_2006-pernr AND
begda GE lv_date1 AND
endda LE lv_date2 AND
ktart = '80'.
lv_anzhb = p2006-anzhl - p2006-kverb.
i_rep1-pernr = i_2006-pernr.
i_rep1-ktext = i_2006-ktext.
i_rep1-anzhl = p2006-anzhl.
i_rep1-kverb = p2006-kverb.
i_rep1-ename = i_2006-ename.
i_rep1-begda = p2006-begda.
i_rep1-endda = p2006-endda.
i_rep1-anzhb = lv_anzhb.
i_rep1-ktart = '80'.
i_rep1-year = lv_year2.
APPEND i_rep1.
CLEAR: i_rep1.
ENDLOOP.
ENDIF.
CLEAR: lv_year1, lv_year2,
lv_date1, lv_date2,lv_anzhb.
ENDLOOP.
SORT i_rep1 BY pernr ktart.
ENDFORM. "get_pers_data
*& Form append_data
Put the Absence and Quota Data into one Report Int Table
FORM append_data.
CLEAR: i_rep.
REFRESH: i_rep.
SORT i_2001 BY pernr awart.
SORT i_2006 BY pernr ktart year.
Move I_REP1 data into i_2006
LOOP AT i_rep1.
MOVE-CORRESPONDING i_rep1 TO i_2006.
APPEND i_2006.
CLEAR i_2006.
ENDLOOP.
Move the Absence and Quota Data into a final Int Table
LOOP AT i_2006.
i_rep-pernr = i_2006-pernr.
i_rep-ename = i_2006-ename.
i_rep-ktart = i_2006-ktart.
i_rep-anzhl = i_2006-anzhl.
i_rep-kverb = i_2006-kverb.
i_rep-ktext = i_2006-ktext.
i_rep-anzhb = i_2006-anzhb.
i_rep-year = i_2006-year.
CLEAR i_2001.
CASE i_2006-ktart.
WHEN '81'.
PERFORM get_2001 USING i_2006-pernr '1000' i_2006-year.
WHEN '50'.
PERFORM get_2001 USING i_2006-pernr '1002' i_2006-year.
WHEN '80'.
PERFORM get_2001 USING i_2006-pernr '1001' i_2006-year.
WHEN '56'.
PERFORM get_2001 USING i_2006-pernr '1003' i_2006-year.
WHEN '51'.
PERFORM get_2001 USING i_2006-pernr '1004' i_2006-year.
WHEN '52'.
PERFORM get_2001 USING i_2006-pernr '1005' i_2006-year.
WHEN '54'.
PERFORM get_2001 USING i_2006-pernr '1006' i_2006-year.
WHEN '53'.
PERFORM get_2001 USING i_2006-pernr '1007' i_2006-year.
WHEN '55'.
PERFORM get_2001 USING i_2006-pernr '1008' i_2006-year.
WHEN '57'.
PERFORM get_2001 USING i_2006-pernr '1009' i_2006-year.
WHEN '90'.
PERFORM get_2001 USING i_2006-pernr '2000' i_2006-year.
WHEN '58'.
PERFORM get_2001 USING i_2006-pernr '2001' i_2006-year.
WHEN '59'.
PERFORM get_2001 USING i_2006-pernr '2002' i_2006-year.
WHEN '91'.
PERFORM get_2001 USING i_2006-pernr '2003' i_2006-year.
ENDCASE.
IF sy-subrc <> 0.
APPEND i_rep.
ENDIF.
CLEAR i_rep.
ENDLOOP.
SORT i_rep BY pernr ktart year.
DELETE i_rep WHERE pernr = ' '.
ENDFORM. " append_data
*& Form display_qa_data
Display the Absence and Quota Data
FORM display_qa_data.
DATA: lv_flag, " New Flag
lv_tot2 TYPE ptm_quonum. " Absence Balance days
IF i_rep[] IS INITIAL.
MESSAGE i000 WITH 'No Data found'(014).
ELSE.
LOOP AT i_rep.
toggle color
PERFORM toggle_color.
IF lv_flag <> space.
NEW-LINE.
ENDIF.
AT NEW pernr.
READ TABLE i_rep INDEX sy-tabix.
WRITE:/1 sy-vline,2(8) i_rep-pernr,
10 sy-vline,11(40) i_rep-ename.
ENDAT.
AT NEW ktart.
READ TABLE i_rep INDEX sy-tabix.
WRITE: 1 sy-vline, 10 sy-vline,
51 sy-vline,52(25) i_rep-ktext.
ENDAT.
AT NEW year.
READ TABLE i_rep INDEX sy-tabix.
WRITE: 1 sy-vline, 10 sy-vline,
51 sy-vline,
77 sy-vline, 78(4) i_rep-year,
82 sy-vline, 83(11) i_rep-anzhl,
94 sy-vline, 95(25) i_rep-atext,
120 sy-vline,133 sy-vline,
144 sy-vline,
155 sy-vline,156(13) i_rep-anzhb,
169 sy-vline.
lv_tot2 = lv_tot2 + i_rep-anzhb.
ENDAT.
WRITE: 1 sy-vline, 10 sy-vline,
51 sy-vline, 77 sy-vline,
82 sy-vline, 94 sy-vline,
120 sy-vline,121(12) i_rep-abrtg NO-ZERO,
133 sy-vline,134(10) i_rep-begda NO-ZERO,
144 sy-vline,145(10) i_rep-endda NO-ZERO,
155 sy-vline,169 sy-vline.
NEW-LINE.
AT END OF pernr.
WRITE : /1(169) sy-uline.
SUM.
FORMAT COLOR 3.
WRITE:/1 sy-vline, 10 sy-vline,
51 sy-vline, 77 sy-vline,
82 sy-vline, 94 sy-vline,
120 sy-vline,121(12) i_rep-abrtg,
133 sy-vline,144 sy-vline,
155 sy-vline, 156(13) lv_tot2,
169 sy-vline.
FORMAT COLOR OFF.
WRITE : /1(169) sy-uline.
CLEAR lv_tot2.
ENDAT.
ENDLOOP.
ENDIF.
ENDFORM. " display_qa_data
*& Form display_q_data
Display only the Quota Data
FORM display_q_data.
DATA: lv_flag. " New Flag
SORT i_2006 BY pernr ktart year.
IF i_2006[] IS INITIAL.
MESSAGE i000 WITH 'No Data found'(014).
ELSE.
LOOP AT i_2006.
Toggle Color
PERFORM toggle_color.
IF lv_flag <> space.
NEW-LINE.
ENDIF.
AT NEW pernr.
READ TABLE i_2006 INDEX sy-tabix.
WRITE: /1 sy-vline, 2(8) i_2006-pernr,
10 sy-vline,11(40) i_2006-ename.
ENDAT.
AT NEW ktart.
READ TABLE i_2006 INDEX sy-tabix.
WRITE: 1 sy-vline,10 sy-vline,
51 sy-vline,52(25) i_2006-ktext.
ENDAT.
AT NEW year.
READ TABLE i_2006 INDEX sy-tabix.
WRITE: 1 sy-vline, 10 sy-vline,
51 sy-vline,
77 sy-vline,78(4) i_2006-year,
82 sy-vline,83(11) i_2006-anzhl,
94 sy-vline,95(13) i_2006-anzhb,
108 sy-vline.
NEW-LINE.
ENDAT.
AT END OF pernr.
WRITE : /1(108) sy-uline.
SUM.
FORMAT COLOR 3.
WRITE: /1 sy-vline, 10 sy-vline,
51 sy-vline,
77 sy-vline, 82 sy-vline,
94 sy-vline, 95(13) i_2006-anzhb,
108 sy-vline.
FORMAT COLOR OFF.
WRITE : /1(108) sy-uline.
ENDAT.
ENDLOOP.
ENDIF.
ENDFORM. " display_q_data
*& Form display_a_data
Display Only the Absence Quota
FORM display_a_data.
DATA: lv_flag. " New Flag
SORT i_2001 BY pernr awart.
IF i_2001[] IS INITIAL.
MESSAGE i000 WITH 'No Data found'(014).
ELSE.
LOOP AT i_2001.
Toggle Color
PERFORM toggle_color.
IF lv_flag <> space.
NEW-LINE.
ENDIF.
AT NEW pernr.
READ TABLE i_2001 INDEX sy-tabix.
WRITE: /1 sy-vline, 2(10) i_2001-pernr,
10 sy-vline,11(40) i_2001-ename.
ENDAT.
WRITE: 1 sy-vline, 10 sy-vline,
51 sy-vline,52(25) i_2001-atext,
77 sy-vline,78(12) i_2001-abrtg,
90 sy-vline,91(10) i_2001-begda,
101 sy-vline,102(10) i_2001-endda,
112 sy-vline.
NEW-LINE.
AT END OF pernr.
WRITE : /1(112) sy-uline.
SUM.
FORMAT COLOR 3.
WRITE: /1 sy-vline, 10 sy-vline,
51 sy-vline,
77 sy-vline,78(12) i_2001-abrtg,
90 sy-vline,101 sy-vline,
112 sy-vline.
FORMAT COLOR OFF.
WRITE : /1(112) sy-uline.
ENDAT.
ENDLOOP.
ENDIF.
ENDFORM. " display_a_data
*& Form header
Write the Report Header
FORM header .
data : lv_pers type pbtxt,
lv_orgn type orgtx.
gv_title1 = sy-title. " Set List Header
IF p_qa = c_x.
NEW-PAGE LINE-SIZE 193.
ELSEIF p_a = c_x.
NEW-PAGE LINE-SIZE 125.
ELSEIF p_q = c_x.
NEW-PAGE LINE-SIZE 119.
ENDIF.
Standard header
FORMAT RESET.
CALL FUNCTION 'Z_STANDARD_HEADER'
EXPORTING
title1 = gv_title1.
Get the Personal Area and Org.Unit Texts
clear : lv_pers,lv_orgn.
select single name1 into lv_pers
from t500p where persa = pnpwerks-low.
select single orgtx into lv_orgn
from t527x where sprsl = sy-langu and
orgeh = pnporgeh-low and
endda = c_endda.
if not lv_pers is initial.
write : /2 'Personal Area:'(017), 17(25) lv_pers color 7.
endif.
if not lv_orgn is initial.
write : /2 'Organization Unit:'(021), 20(25) lv_orgn color 3.
endif.
IF p_qa = c_x.
FORMAT COLOR COL_HEADING.
WRITE : /1(169) sy-uline.
WRITE:/1 sy-vline,2(8) 'Emp.No'(015) CENTERED,
10 sy-vline,11(40) 'Employee Name'(016) CENTERED,
51 sy-vline,52(25) 'Quota Description'(018) CENTERED,
77 sy-vline,78(4) 'Year'(027),
82 sy-vline,83(11) 'Entitlement'(019),
94 sy-vline,95(25) 'Absence Description'(022) CENTERED,
120 sy-vline,121(12) 'Absence days'(023),
133 sy-vline,134(10) 'From Date'(024),
144 sy-vline,145(10) 'To Date'(025),
155 sy-vline,156(13) 'Quota Balance'(020),
169 sy-vline.
WRITE : /1(169) sy-uline.
ELSEIF p_q = c_x.
FORMAT COLOR COL_HEADING.
WRITE : /1(108) sy-uline.
WRITE:/1 sy-vline,2(8) 'Emp.No'(015) CENTERED,
10 sy-vline,11(40) 'Employee Name'(016) CENTERED,
51 sy-vline,52(25) 'Quota Description'(018) CENTERED,
77 sy-vline,78(4) 'Year'(027),
82 sy-vline,83(11) 'Entitlement'(019),
94 sy-vline,95(13) 'Quota Balance'(020),
108 sy-vline.
WRITE : /1(108) sy-uline.
ELSEIF p_a = c_x.
FORMAT COLOR COL_HEADING.
WRITE : /1(112) sy-uline.
WRITE:/1 sy-vline,2(8) 'Emp.No'(015) CENTERED,
10 sy-vline,11(40) 'Employee Name'(016) CENTERED,
51 sy-vline,52(25) 'Absence Description'(022) CENTERED,
77 sy-vline,78(12) 'Absence days'(023),
90 sy-vline,91(10) 'From Date'(024),
101 sy-vline,102(10) 'To Date'(025),
112 sy-vline.
WRITE : /1(112) sy-uline.
ENDIF.
ENDFORM. " header
*& Form toggle_color
This routine alters the color of the records in the list
FORM toggle_color.
IF gv_dial = space.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
gv_dial = c_x.
ELSE.
FORMAT COLOR 1 INTENSIFIED OFF.
CLEAR gv_dial.
ENDIF.
ENDFORM. " toggle_color
*& Form get_2001
Get the ABsence type for each Quota type
FORM get_2001 USING p_pernr TYPE persno
p_value TYPE awart
p_year.
LOOP AT i_2001 WHERE pernr = p_pernr AND
awart = p_value AND
endda+0(4) = p_year.
i_rep-awart = i_2001-awart.
i_rep-abrtg = i_2001-abrtg.
i_rep-atext = i_2001-atext.
i_rep-begda = i_2001-begda.
i_rep-endda = i_2001-endda.
APPEND i_rep.
ENDLOOP.
ENDFORM. " get_2001
<b>Reward points for useful Answers</b>
Regards
Anji -
Retrieving data from Payroll clusters u0085
Hi ,
Can any one help me , How to retrieve data from payroll clusters , For example take payus_result (structure ) and I want to retrieve data from PC208 and PC209 . Can any one give step by step process how to do this?
I am working with HR ABAP. Mostly working with Payrolls. So I want to know this. Plz help me in this ASAP.
Thanks & Regards,
K Venkata SureshHello,
you have to read the cluster like this.
Tables : pcl1, pcl2.
temp.variable to hold the payroll period
DATA : g_f_pper LIKE pc261-fpper .
DATA : g_f_seqnr LIKE pc261-seqnr.
Cluster Definition.
INCLUDE rpc2cd00. "Cluster CD Data-Definition
INCLUDE rpppxd00. "Data-Definition Puffer PCL1/PCL2
INCLUDE rpppxd10. "Common Part Puffer PCL1/PCL2
INCLUDE rpppxm00 .
INCLUDE rpc2rx02 .
INCLUDE rpc2rx39 .
INCLUDE rpc2ca00 .
INCLUDE rpc2rdd1 .
INCLUDE rpc2rx29 .
INCLUDE hdepaymacro .
Get the payroll period
CLEAR : g_f_pper.
CONCATENATE pn-begda0(4) pn-begda4(2) INTO g_f_pper .
fill the keys for the CU cluster
cd-key-pernr = pernr-pernr.
import from the cluster CU
CLEAR: rgdir, g_f_seqnr.
REFRESH rgdir.
rp-imp-c2-cd.
IF rp-imp-cd-subrc = 0 .
IF NOT rgdir[] IS INITIAL.
SORT rgdir BY fpbeg DESCENDING.
LOOP AT rgdir WHERE fpper EQ g_f_pper
AND srtza EQ 'A'. " Active g_f_seqnr = rgdir-seqnr.
ENDLOOP.
ENDIF.
ENDIF.
fill the RX key and then import the cluster
rx-key-pernr = pernr-pernr .
CLEAR : rx-key-seqno.
UNPACK g_f_seqnr TO rx-key-seqno .
CLEAR rt.
REFRESH rt.
rp-imp-c2-rd.
IF rp-imp-rd-subrc = 0.
LOOP AT rt WHERE lgart = '9230'. RT " Result table
move the values here
Endloop.
ENDIF.
Reward if helps.
Thanks,
Krishnakumar -
hi,
I need to develop a report for pay roll.
one of the field called "Net Sal" from a cluster.
How do i retrieve data from the clusters?
Thanks & Regards
Chetanahi
plz refer the following program and use logical database PNP in the LDB section and modify the wagetypes in rt-lgart in the program to suit ur needs.
reward points if it helps!!
gunjan
*& Report ZHR_PAYROLL
REPORT ZHR_PAYROLL.
TABLES: PCL1,PCL2,PERNR,PA0001,PA0002,PA0008.
INCLUDE RPC2CD09. "Cluster CD data definition
INCLUDE RPC2CA00. "Cluster CA Data-Definition
INCLUDE RPPPXD00. "Data Definition buffer PCL1/PCL2 Buffer
INCLUDE RPPPXD10. "Common part buffer PCL1/PCL2
INCLUDE RPPPXM00. "Buffer Handling routine
*COUNTRY SPECIFIC INCLUDE
INCLUDE PC2RXIN0. "Cluster IN data definition
INCLUDE RPC2RX09. "Data Definition for Cluster RD in PCL2
*For Error records
DATA: BEGIN OF HR_ERROR OCCURS 10.
INCLUDE STRUCTURE HRERROR.
DATA: END OF HR_ERROR.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS:P_PAYTYP LIKE PC261-PAYTY,
P_RUNDAT LIKE PC261-BONDT.
SELECTION-SCREEN END OF BLOCK B1 .
DATA: BEGIN OF T_MAIN OCCURS 0,
W_PERNR LIKE PA0001-PERNR,
W_ENAME LIKE PA0001-ENAME,
W_GROSS TYPE P DECIMALS 2,
W_SALARY TYPE P DECIMALS 2,
END OF T_MAIN.
START-OF-SELECTION.
GET PERNR.
PERFORM GET_RT_DETAILS.
END-OF-SELECTION.
PERFORM DISPLAY_RESULT.
*& Form GET_RT_DETAILS
text
--> p1 text
<-- p2 text
FORM GET_RT_DETAILS .
CLEAR RGDIR.
**IMPORT CLUSTER RESULTS FROM CLUSTER DIRECTORY**
CD-KEY-PERNR = PERNR-PERNR.
RP-IMP-C2-CU.
RETURN CODE FROM IMPORT.
IF RP-IMP-CD-SUBRC <> 0.
MESSAGE S124(HRPADIN01) WITH PERNR-PERNR.
Payroll results not found for the employee no. &
PERFORM BUILD_ERROR TABLES HR_ERROR
USING PERNR-PERNR 'HRPADIN01'
'124' PERNR-PERNR SPACE SPACE SPACE.
REJECT.
ENDIF.
=====================================================================
SAPGUI Progress indicator
=====================================================================
MESSAGE w_progress TYPE 'S' DISPLAY LIKE 'I'.
SORT RGDIR BY FPPER DESCENDING.
LOOP AT RGDIR WHERE FPBEG GE PN-BEGDA AND FPEND LE PN-ENDDA
AND SRTZA = 'A' AND PAYTY = P_PAYTYP AND BONDT = P_RUNDAT.
PERFORM progress_indicator.
**IMPORT RESULTS FROM INDIA PAYROLL CLUSTER**
RX-KEY-SEQNO = RGDIR-SEQNR.
RX-KEY-PERNR = PERNR-PERNR.
RP-IMP-C2-IN.
RETURN CODE FROM IMPORT.
IF RP-IMP-IN-SUBRC <> 0.
CONTINUE.
ENDIF.
PERFORM FILL_T_MAINTAB.
ENDLOOP. " RGDIR
ENDFORM. " GET_RT_DETAILS
*& Form FILL_T_MAINTAB
text
--> p1 text
<-- p2 text
FORM FILL_T_MAINTAB .
LOOP AT RT.
CASE RT-LGART.
WHEN '/101'.
ADD RT-BETRG TO T_MAIN-W_GROSS.
CLEAR RT-BETRG.
WHEN '1002'.
ADD RT-BETRG TO T_MAIN-W_SALARY.
CLEAR RT-BETRG.
ENDCASE.
ENDLOOP.
APPEND T_MAIN.
CLEAR T_MAIN.
ENDFORM. " FILL_T_MAINTAB
*& Form BUILD_ERROR
text
-->HR_ERROR text
-->$PERNR text
-->$MSGID text
-->$MSGNO text
-->$MSGV1 text
-->$MSGV2 text
-->$MSGV3 text
-->$MSGV4 text
FORM BUILD_ERROR TABLES HR_ERROR STRUCTURE HR_ERROR
USING $PERNR
$MSGID
$MSGNO
$MSGV1
$MSGV2
$MSGV3
$MSGV4.
HR_ERROR-PERNR = $PERNR.
HR_ERROR-ARBGB = $MSGID.
HR_ERROR-MSGTY = 'E'.
HR_ERROR-MSGNO = $MSGNO.
HR_ERROR-MSGV1 = $MSGV1.
HR_ERROR-MSGV2 = $MSGV2.
HR_ERROR-MSGV3 = $MSGV3.
HR_ERROR-MSGV4 = $MSGV4.
APPEND HR_ERROR.
ENDFORM. "BUILD_ERROR
*& Form DISPLAY_RESULT
text
--> p1 text
<-- p2 text
FORM DISPLAY_RESULT .
LOOP AT T_MAIN.
FORMAT COLOR 1.
WRITE:/12 T_MAIN-W_PERNR,22 T_MAIN-W_ENAME,56 T_MAIN-W_GROSS,67 T_MAIN-W_SALARY.
ENDLOOP.
ENDFORM. " DISPLAY_RESULT -
How to read data from clusters ??
Hi ,
Can any one please help me with procedure to read data from any Pcln tables.....other than pcl2.
with and without using macros..
I'm planning to read data from Pcl4 from cluster LA .using the macro RP_IMP_C4_LA. i dont know how to pass the key or where to use the key to read data .
Please please let me know the standard procedure to read data from cluster tables.(i know PCL2).'
Thanks In Advance !
KiranHi Thomas,
Just out of curiosity. In our system we have a custom table built which stores data in LRAW format.
The table is updated using IMPORT/EXPORT FROM/TO DATABASE statements (similar to INDX).
Can we read the PCL* tables in the same way as INDX ?
BR,
Suhas -
How to read data from clusters ( Time Management )
Hi All,
How can we read data from cluster tables related to Time Management in different ways?
Can somebody help me please..
Thanks,
Sankar.Hi
Kindly check the following thread:
Cluster database
It has a sample code to read from & to store data in a cluster table
Hope you are looking for cluster tables in HR
Some useful HR tables:
HRP1000 - Infotype 1000 DB Table
HRP1001 - Infotype 1001 DB Table
HRP1028 - Infotype 1028 DB Table
Paxxxx - transparent tables for infotypes
PCL1 - HR Cluster 1
PCL2 - HR Cluster 2
PCL3 - HR Cluster 3
PCL4 - HR Cluster 4
PCL5 - HR/RP Cluster 5; HR Planning Usage
PERNR - Standard Selections for HR Master Data Reporting (Structure)
kindly check the following link for some useful HR tables:
http://www.atomhr.com/know_preview/SAP_HR_tables.htm
Hope this helps!
best regards,
Thangesh -
Migrate PY and TM cluster data from One SAP System to another
Hi Experts,
Could you please suggest me some options to migrate PY and TM cluster data from One SAP System to another? My requirement is to move all the cluster data (Active and Inactive ees).
I see that PU12 is an option. Anybody used that to migrate between SAP systems. Please provide some details
Points guaranteed
I see that using PU12 you can export only PCL2 Clutsers. Are there any ways to move the other clusters like PCL4 ?Hi,
As far as data transfer, If have all normal configuration settings in your targeted system you can use LSMW (Use T.code AS91 in LSMW for recording) to transfer your data in your both cases.
Hope it resolves your both the issues.
Regards,
Murali -
How to only migrate data from SQL Server 2008 to Oracle 11?
According to our requirement, We need to only migrate data from a SQL Server database to an existed
Oracle database user.
1) I tried to do it with SQL Developer 3.0.04 Migration Wizard, But find an issue.
My SQL Server database name is SCDS41P2, and my Oracle database user name is CDS41P2;
When I used SQL Developer to do offline move data by Migration Wizard, I found all oracle user
name in movedata files which gotten by run Migration Wizard
is dbo_SCDS41P2. If the Oracle user name is not the same as my existed Oracle user name,
the data can't be moved to my existed Oracle user when I run oracle_ctl.bat in command line window.
So I had to modify the Oracle user name in all movedata files, but it's difficult to modify them because there are many tables in
databases. So could you please tell me how to get the movedata files which the oracle user name in them is my
expected Oracle user name?
2) I also tried to use the 'copy to Oracle' function to copy the SQL Server database tables data
to the existed Oracle database user. When clicked 'copy to Oracle', I selected 'Include Data' and 'Replace' option
But I found some tables can't be copied, the error info is as below:
Table SPSSCMOR_CONTROLTABLE Failed. Message: ORA-00955: name is already used by an existing object
Could you please tell me how to deal with this kind of error?
Thanks!
Edited by: 870587 on Jul 6, 2011 2:57 AMHi,
Thanks for you replying. But the 'copy to oracle' function still can't be work well. I will give some info about the table. I also search 'SPSSCMOR_CONTROLTABLE' in the target schema, and only find one object. So why say 'name is already used by an existing object'? Could you please give me some advice? Thanks!
What is the 'Build' version of your SQL*Developer ?
[Answer]:
3.0.04
- what does describe show for the SPSSCMOR_CONTROLTABLE in SQL*Server ?
[Answer]:
USE [SCDS41P2]
GO
/****** Object: Table [dbo].[SPSSCMOR_CONTROLTABLE] Script Date: 07/18/2011 01:25:05 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[SPSSCMOR_CONTROLTABLE](
[tablename] [nvarchar](128) NOT NULL,
PRIMARY KEY CLUSTERED
[tablename] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
- what does describe show for the SPSSCMOR_CONTROLTABLE in Oracle ?
[Answer]:
-- File created - Monday-July-18-2011
-- DDL for Table SPSSCMOR_CONTROLTABLE
CREATE TABLE "CDS41P2"."SPSSCMOR_CONTROLTABLE"
( "TABLENAME" NVARCHAR2(128)
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "USERS" ;
-- DDL for Index SYS_C009547
CREATE UNIQUE INDEX "CDS41P2"."SYS_C009547" ON "CDS41P2"."SPSSCMOR_CONTROLTABLE" ("TABLENAME")
PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "USERS" ;
-- Constraints for Table SPSSCMOR_CONTROLTABLE
ALTER TABLE "CDS41P2"."SPSSCMOR_CONTROLTABLE" MODIFY ("TABLENAME" NOT NULL ENABLE);
ALTER TABLE "CDS41P2"."SPSSCMOR_CONTROLTABLE" ADD PRIMARY KEY ("TABLENAME")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "USERS" ENABLE;
Edited by: 870587 on Jul 18, 2011 1:42 AM -
Hello All,
I am a fairly new user to Labview and am currently creating a program that: monitors sensor inputs from various CompactDAQ modules (9213, 9217), does error checking, then uses the data in some final calculations, such as averaging etc. I have put together a small piece of code that includes the main functions that I am trying to accomplish. Right now I am fairly comfortable with getting the channels set up and assigned, then passing this data into a while loop that continually pulls data from these sensors.
I have the calculations vi complete and the channel inputs UI complete, now I am working on the reading and data manipulation side of things. The 1D Waveform that is coming out of read function is being broken up into the components that I am interested in (String Name and Y data). It then pass this information out of the loop through a queue which passes it along to the parallel loop below which will perform the error checking and the averaging calculations. There are some things that complicate this. I have shown 2 sensors in my example, but in the actual program, there can be up to 400 inputs. The issue is that not all these sensors will be used on every test that the software is used for. To use the inputs in the test VI as an example: If I am trying to average these 2 inputs to create a common value, but then on one test, sensor 2 is not there, it needs to recognize this and not use this in the averaging function.
So to get right down to it, I want to create something that can look through the clusters of data from the 1D Waveform, determine what these values are, then do the necessary functions to those numbers once they are identified, then pass them onto the Calculations VI where it then displays the usable information for the user. I think I am having an issue with determing how to sort as everything I have thought of makes me think there has to be an easier way.
Has anyone encountered this? Does my explaination of what I am trying to do make sense? Let me know and I can clarify.
Solved!
Go to Solution.
Attachments:
Channel Testing.vi 43 KBAs far as functionality goes, I don't see anything wrong. when it comes to efficiency you need to keep some general pointers in mind. These issues which I'm bringing up will not affect your code currently since your array sizes are small but can start creating memory fragmentaion and slow down the software if your array sizes are much larger and the software runs for a long period of time.
1. Try not to use Build Array. Each time you use a built array labview creates a copy in the memory. Try to initilized your arrays and replace the subsets.
2. as much as you can try not index arrays or unbundle cluster multiple times. try to perform as many tasks as possbile in one shot. (this was evident in your second loop)
Besides that it's looking good.
I made a few modifications to your code and attached it. I wanted to give you a different take on it as it relates to being able to control the inputs and outputs programitically, if you had a look up table. I didn't make the same modifications to your second loop but I can guide you through what needs to be done if you would like to move in this direction. Again your original code is well done for someone who is new to labview so don't feel like you need to follow the new VI design. Just try to remove the build array and multiple indexing as a good programming habbit.
www.movimed.com - Custom Imaging Solutions
Attachments:
Channel Testing.vi 41 KB -
How to save the dynamic data from a pressure sensor
Hello Everyone,
We have a FPGA board NI cRIO-9073, a temperature module NI 9217 and a pressure module NI 9203. Right now we have problem with saving the data from pressure sensor. I succeed in getting and saving the data from the temperature sensor. Then I just simply modify the FPGA VI and host VI of the temperature function block which are shown in the attachment files.But I get an error saying I cannot connect two different data types.
Could anyone here give me a help on this?
BTW: we are using a 2 wired pressure sensor with 4~20mA. The brown one is +Vcc and the white one is GND.I connect the white one with the COM of NI 9203 and the brown one is connected to AI7. DidI make a right connection?
Thx for any help from anyone!
Attachments:
pre_tem.JPG 36 KB
pre.jpg 35 KBHi, I get this error message:
Write to textfile: function contains an unrelated or improper connection.You have combined two different types of connections among each other.
At least one entrance of the function required for their operation, is open or not properly connected, the connection scheme is illustrated in the context help.
They have combined two different types of connections with each other. This connection is not possible because the data types (such as "numeric", "String", "Arrary" or "clusters do not match"). Open to see the contextual help at what must have a data type for the connection. The type of data source (fixed) costs. The type of data is dynamic data.
Maybe you are looking for
-
Hello, Everything works fine when you invite people to your personal cloud.. You're given the Username and Password and the group in the invitation email. To access this Personal Cloud from a Web browser, use the following URL: https://xxxxxxxx.mylen
-
Desktop will not load, stuck on blue screen -- please help!
As I can see, many other Mac users have encountered the same problem that I now have: the dreaded ‘blue screen of death’. About a week ago, any internet browser that I tried to open (Safari, Firefox) would freeze after loading its home page, and tell
-
GTK burning application (graveman not working insinde)
Well, I'm in troubles with graveman for past few months, so I searched for a replacing application. It must burn CD/DVD and have a GTK frontend (not gnome-dependant). A graveman working ^^ (all my burns fail at the end, CD or DVD)
-
What is the point of NoDriveLetter in Mount-Diskimage?
I tried to use NoDriveLetter to mount a disk image to an empty folder. A straightforward task in DiskManager, but turned out to be more complicated in PowerShell. Mount-DiskImage will return a CimInstance object, but of the MSFT_DiskImage type. The o
-
Hello friends, While doing invoicing I am getting following error.The Billing has happened Succesfully. Tried billing through T-code, EA19 / EASIBI. The error Message & Log is as follows : "There are gaps in the definition for tax determination indic