Function to read CRT WT in PCR
Dear Experts,
I want to querry a CRT wage type in a PCR. I hav written the pcr.
What function should i use to call that pcr. I tried with Actio, PIT but its not Iinput IT is passing as it to output IT.
Please tell me how can i fix this issue.
Charle
Process PCR with function PIT, and use operation AMT=CYxxxx, NUM+CMxxxx or something similar, but don't forget that it will read the CRT of the previous Payroll results.
I have one where I add the previous value of CRT to the WT's current value (AMT+CYxxxx) in order to create a temporary variable (ADDWT& xxxx) showing what will be the CRT value at the end of the current payroll period.
Similar Messages
-
Function to read status in process order
Hello.
Iu2019m using the function STATUS_TEXT_EDIT to read the status of a process order and I need read the statu in whole phases. Someone know a function to read the status of each phase in a process order?
Thanks in advancesHello Vivek,
My requirement is much simlar to this this is Status profile below maintain in the System
1 INPR In Process 1 10 1 1
2 UNCA Unsigned - CA Approved 2 10 1 1
3 UNFA Unsigned - FA Approved 3 10 1 1 ZFAAPPR RELE
4 SIGN Signed 4 10 1 1
5 SICA Signed - CA Approved 5 10 1 1
6 SIFA Signed - FA Approved 6 10 1 1 ZFAAPPR RELE
7 TBCL To Be Closed 1 10 1 1
8 CLOS Closed 1 10 1 1 ZNOAUTH
9 TBCN To Be Cancelled 1 10 1 1
10 CANC Cancelled 10 10 1 1 ZNOAUTH CANC
11 COMP Completed 1 11 1 1 ZNOAUTH
My Requirement is when the status is Close we can set the status to any of the Ten mentioned status as it was maintained in Highest and lowest vlalues here i dnt need alll the status i only need filtered Statues for the Close Status like
In Proces,Unsigned - CA Approved,Signed,Signed - CA Approved,To Be Closed these Status should be active when the Header Status is Close.Can you help me steps involved to achive this
Edited by: posanapalli kiran on Feb 11, 2010 10:08 AM -
ABAP Function to read long texts in HR Infotypes
Is there any standard ABAP function to read long texts in HR infotypes like ABAP function to read comments entered in infotype 19
HI ,
try this code
tables pcl1.
include rpc1tx00. " This include is explained on web page above
start-of-selection.
perform fill_key. perform get_data.end-of-selection.
form fill_key.
tx-key-pernr = p_pernr.
tx-key-infty = p_infty.
tx-key-subty = p_subty.
tx-key-objps = p_objps.
tx-key-sprps = p_sprps.
tx-key-endda = p_endda.
tx-key-begda = p_begda.
tx-key-seqnr = p_seqnr.
"OR
SELECT * INTO CORRESPONDING FIELDS OF wa_p0219
FROM pa0219
WHERE pernr = p_pernr
AND subty = p_subtyp
AND endda = '99991231'.
ENDSELECT.
MOVE-CORRESPONDING gs_p0219 TO tx-key.
MOVE '0219' TO tx-key-infty.
IF wa_p0219-itxex = 'X'.
MOVE-CORRESPONDING wa_p0219 TO tx-key.
endif.
endif
endform. " fill_key
form get_data.
import ptext from database pcl1(tx) id tx-key.
loop at ptext. "ptext is defined in above include
write: / ptext-line.
endloop.
endform. " get_data
Prabhudas -
Give me some examples for functions for read POST, write POST, modify POST
Give me some examples for functions for read POST, write POST, modify POST, create and delete theme in forum. This functions have to be make like Remote Methods
Give me some examples for functions for read POST, write POST, modify POST, create and delete theme in forum. This functions have to be make like Remote Methods
-
Can I use LabVIEW to load data directly into system memory from a VI? The serial card I'm using isn't supported by NI nor does VISA recognize it. I'm using a Call Library function to read the data from the card and now I want it to go directly to system memory.
The data is being received at 1Mbps.
ThanksTwo questions:
One, if it's a serial card, then presumably it gives you more serial ports, like COM3, COM4, etc. If so, VISA would see the COM ports, and not the card directly. The drivers for the card should make it so that you see the extra serial ports from the OS. If you don't see the extra COM ports from VISA, then it sounds like the drivers for the card are not installed properly. Do the extra COM ports show up in Device Manager?
Two, you said that you're using a Call Library function to get the data and you want to put it into system memory. Errr.... you just read the data and you have it in memory by definition. Are you saying you need a way to parse the data so it shows up on a graph or something? -
Functions to read and display an array of integers
Hi guys,
I am trying to implement with a class called Sort a function to read in an array of integers from a file and a function to display that array.
public class Sort
public static int[] read(String file) throws IOException
/* Create Reader object to read contents of file */
BufferedReader br = new BufferedReader(new FileReader(file));
/* Read file and store lines in ArrayList */
ArrayList<Integer> list = new ArrayList<Integer>();
/* Variable */
String in;
/* While not equal to null reads data from file */
while ((in = br.readLine()) != null)
/* Adds data from file to ArrayList */
list.add(Integer.parseInt(in));
/* Converts ArrayList into an array */
int[] array = new int[list.size()];
for(int i = 0; i < list.size(); i++)
/* Get array elements */
array[i] = list.get(i);
/* Returns array */
return array;
public int display()
for (int i = 0; i < list.size(); i++)
System.out.println(list.get(i));
}I am having one of those moments when you forget everything, I need help with display the array in a seperate function, will someone help me please?
Thanks!I know that its just implementing it.
I have:
public void display()
for(int i = 0; i < array.length; i++)
System.out.println(array);
But I'm lost on how to make this work, i.e it says "cannot find array variable". I've not done Java for a while and feel like I have forgot everything!
Edited by: mbruce10 on Nov 15, 2009 1:31 AM -
Reading Organizational Unit in PCR
Hi
Is there a way to read Organizational Unit in PCR? If yes, please throw some light on it.
Regards
YashYou can use operationOUTWP ,use OUTWPORGEH to query Organizational unit
along with some time you have to use VALEN and VAOFF to limit the Length of the decision item
Please go through the Documentation of Operation OUTWP,VALEN,VAOFF , ( go to PE04) -
I need to read the date of joining in PCRs. i am maintaining date specification infotype 41. how to get this date from IT 41 in PCR. What operation i need to use.. Or is there any operation which can directly give hiring date of person without maintaining 41 infotype.
pls tell its urgent.
Thanks in Advance.I sent you this information, words in bold I think would help you
Evaluating Date Specifications in Payroll
Object
Operations NUM, AMT and RTE evaluate date specifications for the
calculation of deadlines. Retrieval takes place using the function
DATES.
Two dates are determined. These are interpreted as the start and end
dates of a period. The evaluation of deadlines can return incorrect
results if the second date lies before the first date. Therefore, for
deadline calculation purposes, the first date should always be smaller
than the second date.
Date types with the following short names can be used for the
evaluation. All date types other than 'X' are only taken into account if
they are before the end of the current payroll period.
In the operations NUM, RTE und AMT, specification of the date type
follows the operand F directly.
A, B First entry from infotype 0000
C Last entry, or reentry
D Last change of individual working time from infotype 0041
In table T530, if the field KUNBZ (indicator for irregular payments)
is 05, then the start date of the work center is taken for D.
E Last change of capacity utilization level from infotype 0008
F Last change of weekly working hours from infotype 0007
A comparison is carried out with date type C for the date types D, E
and F. If the value determined for C is greater than the values
determined for D, E or F (that is, a later date), the value of C is
used for D, E or F. Any changes in the capacity utilization level or
the like before the last reentry are not evaluated. The date of the
last reentry is taken instead of this date.
G Birth date from infotype 0002
W Reentry
The last reentry date is entered in this date specification. If no
reentry data exists, the initial entry date is used. This date has
the short name 'A' in the evaluation.
X Employee leaves after the end of the period in accordance
with infotype 0000
The system checks whether there is a record for infotype 0000
(Actions) has a record where the Stat2 field has the value 0 (=
left). The start date (BEGDA) of this record is the leaving date.
This date type always has an entry. If an employee leaves after the
end of the period in question, this date will be used. If no leaving
date exists, the date December 12, 9999 is used.
Z Leaving before the end of the period in accordance with infotype
0000
The system checks whether there is a record for 0000 (Actions) where
the Stat2 field has the value 0 (= left). The start date (BEGDA) of
this record is the leaving date.
This date type always has an entry. If an employee leaves before the
period in question, this date is used. If no date is given, the date
December 31, 9999 is used.
nn Date type 'nn' from the Date Specifications infotype (0041)
Date types are taken from table T548Y.
Syntax
The operands are constructed as follows:
Operation NUM= is taken as an example: Processing is identical for
RTE and AMT:
NUM=Faaesb
F Fixed indicator for deadline calculation
aa Date type: Start date of period to be
calculated; if the date type is not 'nn,'
the second position is left blank.
e Unit, in which the duration is calculated:
T = days
W = week
M = months
C = complete months
K = complete calendar months
N = complete calendar months (rounded up)
J = Years
Y = Complete years
The difference between the individual
units is explained in
Calculation Examples
in more detail.
s End date of period to be calculated:
(blank) End of current payroll period
J End of current calendar year
A Start of current calendar year
B Start of WPBP period
No other specifications are possible.
b If the date type specified in parameter aa
does not exist for the person in question,
an alternative fixed identification is
selected. If 'SPACE' is entered, the
date 31.12.9999 is used. However, you can use
one of the date types listed above as
an alternative or enter 0
0 to set the alternative value to 0.
Example
NUM=FA_M_
F Identifier for deadline calculation
A Date type A, initial entry from infotype 0000
_ Blank; placeholder for 2-character
date type from infotype 0041
M Deadline calculation is in months
_ Blank; key date for deadline calculation
End of payroll period
_ Blank; If no specification exists for date
type A, the date 31.12.9999 is used as an
alternative.
NUM=F01M_A
F Identifier for calculation deadline
01 Date type for technical entry date from
infotype 0041
M Deadline calculation in months
_ blank, key date for calculating the
deadline
End of payroll period
A Alternative date: if no specification exists
for date type 01, the first entry from
infotype 0000 is used.
Under Calculation Examples for Evaluating Date Specifications you can
find more information and case studies regarding how to calculate the
period between a start and end date for the operations NUM, RTE and AMT.
Regards. Manuel Campos -
Dear Freinds
I have to read the CRT values for the wage tyep /101.
but the Technical Owner said that i have to do loop for getting all the values in the split. Could any please explaing what they mean by split and if possible by any example , because as per me CRT we will only read the wage type = /101 and fetch the amount .
Regds
SyamalaHi Kiran,
The best way is to follow the following sinppet.
Get the payroll results
CALL FUNCTION 'PYXX_READ_PAYROLL_RESULT'
EXPORTING
employeenumber = p0001-pernr
sequencenumber = v_seqnr
CHANGING
payroll_result = wa_payresult
EXCEPTIONS
illegal_isocode_or_clusterid = 1
error_generating_import = 2
import_mismatch_error = 3
subpool_dir_full = 4
no_read_authority = 5
no_record_found = 6
versions_do_not_match = 7
error_reading_archive = 8
error_reading_relid = 9
OTHERS = 10.
IF sy-subrc = 0.
move payroll results to Internal tables
MOVE wa_payresult-inter-crt[] TO it_crt[]."payroll result from CRT table
Get the payroll result from crt table
LOOP AT it_crt INTO wa_crt.
CASE wa_crt-lgart. " Wagetype
WHEN /101.
v_amount = wa_crt-betrg.
ENDCASE.
CLEAR wa_crt.
ENDLOOP.
Important, U must check with CU_READ_RGDIR and get the IT_rgdir, and later check for the for-period and in-period, according to your requirement.
ThankQ
Regards
Rohini. -
I am trying to read a text box from a programme running at the same time as my Labview application using calls to the Windows
User32.dll. I believe I need to find the window handle for the 'form' containing this text string and use this together with
various other defined input variables to access the sting.
I have no experience of using this 'Call Library Function Node', but have an understanding of the 'C' programming language. Does anyone have
example Labview code showing how this might be done.
ThanksIf you're trying to access information that's being displayed in the window of another application and that application has no ActiveX interface, then yes, Windows calls can be used. There's a very good example on calling DLLs that ship with LabVIEW. Open the Example Finder (Help->Find Examples) and switch to the Search tab. Enter "Call" in the search box and open the VI "Call DLL". Run the VI, select any of the examples, and click the "Open Example VI..." button. That shows you how to call a DLL.
Now, given that you have no experience in calling DLLs, have only an "understanding" of C (which to me means you have never written something like a DLL), and don't seem to know that much about what Windows functions you may need, you're going to find this route pretty difficult, especially since you have to deal with Windows API calls, which are not always that easy to do from LabVIEW.
Let me propose an alternate solution. Go over to http://www.autoitscript.com/autoit3/ and download AutoIt. This is an automation tool that allows you to automate just about anything you want. It has an ActiveX interface that you can call from LabVIEW. I've attached an example VI that shows you how to use it to get the value of a text box from one of the tabs in the computer "System Properties" control panel applet.
Attachments:
AutoIt Example (v7).vi 25 KB -
Update to Acrobat 9.5.1 breaks Flash functionality for reading archived emails
On installing update 9.5.1 to Acrobat Pro on WinXP, I can no longer read the index of previously archived email collections created using the Email to PDF macro in Outlook 2007.
The PDF data file indices were readable before, and are still readable in Acrobat X Reader. Hence the data file content seems to be correct.
I get the error message as below and then on Cancel (as the download page does not work) I can only see the first email in the collection as a two pgae PDF, which is limited to say the least.
Please advise how I should restore the functionality I had prior to this upgrade.Yes, as I said in my original post.the link to the download page did not work. Also as Acrobat X Reader worked (on the same computer), then the required Flash software was already somewhere on my computer
However, this issue has now been resolved by applying the recent update from Acrobat Pro v.9.5.1 to v.9.5.2, reopening the PDF portfolio and following the link in the new dialog box that appeared, to go to the correct Adobe(R) webpage to download and install the Flash Software update. This latest webpage has a date of this month (August 2012).
As of v.9.5.2 this problem is solved. -
Hi,
For reading the *.ini file there are many Ini realted functions. Like that I need in built function in CVI to read the files like
*.c, *.h line by line. Actually string searching function is not helping me as I want to read it line by line and perform
the operations in which I am interested.
Can anyone help me on this?
Thanks and Regards
Nagraj BIt's not clear to me what you are aiming to, but reading a text file line by line can be accomplished by ReadLine () function.
Parsing the line read to intercept special keyword can be done via regular expression instrument driver, which is included in CVI distribution.
Proud to use LW/CVI from 3.1 on.
My contributions to the Developer Zone Community
If I have helped you, why not giving me a kudos? -
PL/SQL function to read a string of characters into an array
I was wondering if there is an easier way than using the substr function multiple times. Here is the example:
Suppose you have a varchar2 variable that contains the word 'Apple'. The function should take it and produce an array. We would invoke it like this:
<what data structure?> a := stringunpackerfunction(x);
// x is the varchar2 containing 'Apple'.
The resulting a would be such that a[0] is 'A', a[1] is 'p', a[2] is 'p', a[3] is 'l' and a[4] is 'e'.
If there is no direct function to do this in a single invocation, is there a function to simply read a string of characters and return 'the next character'?
Thanks,
Regards,
SriniThere is a procedure out there called PS_PARSE which takes a string and converts to an array provided with an identified separator. Works for us pretty well.
I just grabbed this off of google. I am presuming this should work fine. It has been sometime since we implemented ours that I forget if there were any additional modifications that we made. I think there was one regarding the size of the string that could be handled. I forget precisely. Anyways... take a peek at it. Its makes things easy in that your logic is pretty streamlined.
Barry C
http://www.myoracleportal.com
create or replace PACKAGE PS_Parse
IS
|| PL/SQL table structures to hold atomics retrieved by parse_string.
|| This includes the table type definition, a table (though you can
|| declare your own as well, and an empty table, which you can use
|| to clear out your table which contains atomics.
TYPE atoms_tabtype IS TABLE OF VARCHAR2(60) INDEX BY BINARY_INTEGER;
atoms_table atoms_tabtype;
empty_atoms_table atoms_tabtype;
|| The standard list of delimiters. You can over-ride these with
|| your own list when you call the procedures and functions below.
|| This list is a pretty standard set of delimiters, though.
std_delimiters VARCHAR2 (50) := ' !@#$%^&*()-_=+\|`~{{]};:''",<.>/?';
/* Display contents of table using DBMS_OUTPUT */
PROCEDURE display_atomics
(table_in IN atoms_tabtype, num_rows_in IN NUMBER);
|| The parse_string procedure: I provide two, overloaded definitions.
|| The first version puts all atomics into a PL/SQL table and would
|| be used in a PL/SQL Version 2 environment. The second version places
|| all atomics into a string, separating each atomic by a vertical bar.
|| (My code does NOT do any special handling when it finds a "|" in
|| the string. You have to deal with that when you extract the atomics.
||
|| See the program definition for more details on other parameters.
PROCEDURE parse_string
(string_in IN VARCHAR2,
atomics_list_out OUT atoms_tabtype,
num_atomics_out IN OUT NUMBER,
delimiters_in IN VARCHAR2 := std_delimiters);
PROCEDURE parse_string
(string_in IN VARCHAR2,
atomics_list_out IN OUT VARCHAR2,
num_atomics_out IN OUT NUMBER,
delimiters_in IN VARCHAR2 := std_delimiters);
/* Count the number of atomics in a string */
FUNCTION number_of_atomics
(string_in IN VARCHAR2,
count_type_in IN VARCHAR2 := 'ALL',
delimiters_in IN VARCHAR2 := std_delimiters)
RETURN INTEGER;
/* Return the Nth atomic in the string */
FUNCTION nth_atomic
(string_in IN VARCHAR2,
nth_in IN NUMBER,
count_type_in IN VARCHAR2 := 'ALL',
delimiters_in IN VARCHAR2 := std_delimiters)
RETURN VARCHAR2;
END PS_Parse;
create or replace PACKAGE BODY PS_Parse
IS
/* Package variables used repeatedly throughout the body. */
len_string NUMBER;
start_loc NUMBER;
next_loc NUMBER;
|| Since the PUT_LINE procedure regards a string of one or more
|| spaces as NULL, it will not display a space, which is in
|| PS_Parse a valid atomic. So I save a_blank in the PL/SQL
|| table instead of the space itself.
a_blank CONSTANT VARCHAR2(3) := '" "';
/*--------------------- Private Modules ---------------------------
|| The following functions are available only to other modules in
|| package. No user of PS_Parse can see or use these functions.
FUNCTION a_delimiter
(character_in IN VARCHAR2,
delimiters_in IN VARCHAR2 := std_delimiters)
RETURN BOOLEAN
|| Returns TRUE if the character passsed into the function is found
|| in the list of delimiters.
IS
BEGIN
RETURN INSTR (delimiters_in, character_in) > 0;
END;
FUNCTION string_length (string_in IN VARCHAR2)
RETURN INTEGER
IS
BEGIN
RETURN LENGTH (LTRIM (RTRIM (string_in)));
END;
FUNCTION next_atom_loc
(string_in IN VARCHAR2,
start_loc_in IN NUMBER,
scan_increment_in IN NUMBER := +1)
|| The next_atom_loc function returns the location
|| in the string of the starting point of the next atomic (from the
|| start location). The function scans forward if scan_increment_in is
|| +1, otherwise it scans backwards through the string. Here is the
|| logic to determine when the next atomic starts:
||
|| 1. If current atomic is a delimiter (if, that is, the character
|| at the start_loc_in of the string is a delimiter), then the
|| the next character starts the next atomic since all
|| delimiters are a single character in length.
||
|| 2. If current atomic is a word (if, that is, the character
|| at the start_loc_in of the string is a delimiter), then the
|| next atomic starts at the next delimiter. Any letters or
|| numbers in between are part of the current atomic.
||
|| So I loop through the string a character at a time and apply these
|| tests. I also have to check for end of string. If I scan forward
|| the end of string comes when the SUBSTR which pulls out the next
|| character returns NULL. If I scan backward, then the end of the
|| string comes when the location is less than 0.
RETURN NUMBER
IS
/* Boolean variable which uses private function to determine
|| if the current character is a delimiter or not.
was_a_delimiter BOOLEAN :=
PS_Parse.a_delimiter (SUBSTR (string_in, start_loc_in, 1));
/* If not a delimiter, then it was a word. */
was_a_word BOOLEAN := NOT was_a_delimiter;
/* The next character scanned in the string */
next_char VARCHAR2(1);
|| The value returned by the function. This location is the start
|| of the next atomic found. Initialize it to next character,
|| forward or backward depending on increment.
return_value NUMBER := start_loc_in + scan_increment_in;
BEGIN
LOOP
-- Extract the next character.
next_char := SUBSTR (string_in, return_value, 1);
-- Exit the loop if:
EXIT WHEN
/* On a delimiter, since that is always an atomic */
a_delimiter (next_char)
OR
/* Was a delimiter, but am now in a word. */
(was_a_delimiter AND NOT a_delimiter (next_char))
OR
/* Reached end of string scanning forward. */
next_char IS NULL
OR
/* Reached beginning of string scanning backward. */
return_value < 0;
/* Shift return_value to move the next character. */
return_value := return_value + scan_increment_in;
END LOOP;
-- If the return_value is negative, return 0, else the return_value
RETURN GREATEST (return_value, 0);
END;
PROCEDURE increment_counter
(counter_inout IN OUT NUMBER,
count_type_in IN VARCHAR2,
atomic_in IN CHAR)
|| The increment_counter procedure is used by nth_atomic and
|| number_of_atomics to add to the count of of atomics. Since you
|| can request a count by ALL atomics, just the WORD atomics or
|| just the DELIMITER atomics. I use the a_delimiter function to
|| decide whether I should add to the counter. This is not a terribly
|| complex procedure. I bury this logic into a separate module,
however,
|| to make it easier to read and debug the main body of the programs.
IS
BEGIN
IF count_type_in = 'ALL' OR
(count_type_in = 'WORD' AND NOT a_delimiter (atomic_in)) OR
(count_type_in = 'DELIMITER' AND a_delimiter (atomic_in))
THEN
counter_inout := counter_inout + 1;
END IF;
END increment_counter;
/* ------------------------- Public Modules -----------------------*/
PROCEDURE display_atomics
(table_in IN atoms_tabtype, num_rows_in IN NUMBER)
|| Program to dump out contents of table. Notice I must also pass in
|| the number of rows in the table so that I know when to stop the
|| loop. Otherwise I will raise a NO_DATA_FOUND exception. For a more
|| elaborate display_table module, see Chapter 7 on PL/SQL tables.
IS
BEGIN
FOR table_row IN 1 .. num_rows_in
LOOP
DBMS_OUTPUT.PUT_LINE (NVL (table_in (table_row), 'NULL'));
END LOOP;
END;
PROCEDURE parse_string
(string_in IN VARCHAR2,
atomics_list_out OUT atoms_tabtype,
num_atomics_out IN OUT NUMBER,
delimiters_in IN VARCHAR2 := std_delimiters)
|| Version of parse_string which stores the list of atomics
|| in a PL/SQL table.
||
|| Parameters:
|| string_in - the string to be parsed.
|| atomics_list_out - the table of atomics.
|| num_atomics_out - the number of atomics found.
|| delimiters_in - the set of delimiters used in parse.
IS
BEGIN
/* Initialize variables. */
num_atomics_out := 0;
len_string := string_length (string_in);
IF len_string IS NOT NULL
THEN
|| Only scan the string if made of something more than blanks.
|| Start at first non-blank character. Remember: INSTR returns 0
|| if a space is not found. Stop scanning if at end of string.
start_loc := LEAST (1, INSTR (string_in, ' ') + 1);
WHILE start_loc <= len_string
LOOP
|| Find the starting point of the NEXT atomic. Go ahead and
|| increment counter for the number of atomics. Then have to
|| actually pull out the atomic. Two cases to consider:
|| 1. Last atomic goes to end of string.
|| 2. The atomic is a single blank. Use special constant.
|| 3. Anything else.
next_loc := next_atom_loc (string_in, start_loc);
num_atomics_out := num_atomics_out + 1;
IF next_loc > len_string
THEN
-- Atomic is all characters right to the end of the string.
atomics_list_out (num_atomics_out) :=
SUBSTR (string_in, start_loc);
ELSE
|| Internal atomic. If RTRIMs to NULL, have a blank
|| Use special-case string to stuff a " " in the table.
atomics_list_out (num_atomics_out) :=
NVL (RTRIM (SUBSTR (string_in,
start_loc, next_loc-start_loc)),
a_blank);
END IF;
-- Move starting point of scan for next atomic.
start_loc := next_loc;
END LOOP;
END IF;
END parse_string;
PROCEDURE parse_string
(string_in IN VARCHAR2,
atomics_list_out IN OUT VARCHAR2,
num_atomics_out IN OUT NUMBER,
delimiters_in IN VARCHAR2 := std_delimiters)
|| The version of parse_string which writes the atomics out to a packed
|| list in the format "|A|,|C|". I do not repeat any of the comments
|| from the first iteration of parse_string.
IS
BEGIN
/* Initialize variables */
num_atomics_out := 0;
atomics_list_out := NULL;
len_string := string_length (string_in);
IF len_string IS NOT NULL
THEN
start_loc := LEAST (1, INSTR (string_in, ' ') + 1);
WHILE start_loc <= len_string
LOOP
next_loc := next_atom_loc (string_in, start_loc);
num_atomics_out := num_atomics_out + 1;
IF next_loc > len_string
THEN
atomics_list_out := atomics_list_out || '|' ||
SUBSTR (string_in, start_loc);
ELSE
atomics_list_out :=
atomics_list_out || '|' ||
NVL (RTRIM (SUBSTR (string_in,
start_loc, next_loc-start_loc)),
a_blank);
END IF;
start_loc := next_loc;
END LOOP;
/* Apply terminating delimiter to the string. */
atomics_list_out := atomics_list_out || '|' ;
END IF;
END parse_string;
FUNCTION number_of_atomics
(string_in IN VARCHAR2,
count_type_in IN VARCHAR2 := 'ALL',
delimiters_in IN VARCHAR2 := std_delimiters)
RETURN INTEGER
|| Counts the number of atomics in the string_in. You can specify the
|| type of count you want: ALL for all atomics, WORD to count only the
|| words and DELIMITER to count only the delimiters. You can optionally
|| pass your own set of delimiters into the function.
IS
return_value INTEGER := 0;
BEGIN
/* Initialize variables. */
len_string := string_length (string_in);
IF len_string IS NOT NULL
THEN
|| This loop is much simpler than parse_string. Call the
|| next_atom_loc to move to the next atomic and increment the
|| counter if appropriate. Everything complicated is shifted into
|| sub-programs so that you can read the program "top-down",
|| understand it layer by layer.
start_loc := LEAST (1, INSTR (string_in, ' ') + 1);
WHILE start_loc <= len_string
LOOP
increment_counter (return_value, UPPER (count_type_in),
SUBSTR (string_in, start_loc, 1));
start_loc := next_atom_loc (string_in, start_loc);
END LOOP;
END IF;
RETURN return_value;
END number_of_atomics;
FUNCTION nth_atomic
(string_in IN VARCHAR2,
nth_in IN NUMBER,
count_type_in IN VARCHAR2 := 'ALL',
delimiters_in IN VARCHAR2 := std_delimiters)
RETURN VARCHAR2
|| Find and return the nth atomic in a string. If nth_in is greater
|| the number of atomics, then return NULL. If nth_in is negative the
|| function counts from the back of the string. You can again request
|| a retrieval by ALL atomics, just the WORDs or just the DELIMITER.
|| So you can ask for the third atomic, or the second word from the end
|| of the string. You can pass your own list of delimiters as well.
IS
/* Local copy of string. Supports up to 1000 characters. */
local_string VARCHAR2 (1000) :=
LTRIM (RTRIM (SUBSTR (string_in, 1, 1000)));
/* Running count of atomics so far counted. */
atomic_count NUMBER := 1;
/* Boolean variable which controls the looping logic. */
still_scanning BOOLEAN :=
local_string IS NOT NULL AND nth_in != 0;
/* The amount by which I increment the counter. */
scan_increment INTEGER;
/* Return value of function, maximum length of 100 characters. */
return_value VARCHAR2 (100):= NULL;
BEGIN
IF nth_in = 0
THEN
/* Not much to do here. Find 0th atomic? */
RETURN NULL;
ELSE
/* Initialize the loop variables. */
len_string := string_length (local_string);
IF nth_in > 0
THEN
/* Start at first non-blank character and scan forward. */
next_loc := 1;
scan_increment := 1;
ELSE
/* Start at last non-blank character and scan backward. */
next_loc := len_string;
scan_increment := -1;
END IF;
/* Loop through the string until the Boolean is FALSE. */
WHILE still_scanning
LOOP
/* Move start of scan in string to loc of last atomic. */
start_loc := next_loc;
/* Find the starting point of the next atomic. */
next_loc :=
next_atom_loc (local_string, start_loc, scan_increment);
/* Increment the count of atomics. */
increment_counter
(atomic_count,
UPPER (count_type_in),
SUBSTR (local_string, start_loc, 1));
|| Keep scanning if my count hasn't exceeded the request
|| and I am neither at the beginning nor end of the string.
still_scanning :=
atomic_count <= ABS (nth_in) AND
next_loc <= len_string AND
next_loc >= 1;
END LOOP;
|| Done with the loop. If my count has not exceeded the requested
|| amount, then there weren't enough atomics in the string to
|| satisfy the request.
IF atomic_count <= ABS (nth_in)
THEN
RETURN NULL;
ELSE
|| I need to extract the atomic from the string. If scanning
|| forward, then I start at start_loc and SUBSTR forward.
|| If I am scanning backwards, I start at next_loc+1 (next_loc
|| is the starting point of the NEXT atomic and I want the
|| current one) and SUBSTR forward (when scanning in
|| reverse, next_loc comes before start_loc in the string.
IF scan_increment = +1
THEN
RETURN
SUBSTR (local_string, start_loc, next_loc - start_loc);
ELSE
RETURN
SUBSTR (local_string, next_loc+1, start_loc - next_loc);
END IF;
END IF;
END IF;
END nth_atomic;
END PS_Parse;
/ -
Javascript stopped functioning when reader 9.2 installed
I have a fillable PDF form that was designed using Live Cycle Designer -
It uses a javascript to load XML data and fill the PDF form fields.
This had been working previously in a previous version of Reader but has suddenly stopeed working now that Reader 9.2 was installed -
has there been some sort of a change in how javascripts function for the Reader since 9.2 . ?
The Load function javascript is tested and currently works inside Acrobat Professional - but does nothing in Reader.
Please help
ThanksSo then, a RIKLA is the only way to have this useful functionality available for the reader ?
to me, it is clearly worth it - we have reader running everywhere - but corporate doens't like the $1,000 RIKLA price tag and the lack of a guarantee from Adobe that it will work in future relases , etc.
no crafty work - arounds ? huh ?
The current work-around is to write an Adobe Acrobat plug-in that allows a centralizd function to process XML files and fill out PDF's on demand from the XML files generated from a number of other smaller, processes.
This means that an operator needs to, periodically, run the PDF filling plug-in function at a particualr workstation which has a running copy of Adobe Acrobat and then they filled PDF files are then visible - .
The only other available solution is to generate a PDF from scratch - and that is an un-popular proposal - sice we would then need to maintain many different forms manually -
Personally, i think Adobe is missing the bigger picture here -
I think if they made this capability avaialbe they would sell more copies of Acrobat / live cycle because at mnay more people would want to automate this very tedious processing.
Anyway - my two cents are up ....
Thanks for the help -
Restricted Functions in Reader 9
In Acrobat 9 Pro, when I "Enable Usage Rights in Adobe Reader," I am warned that "certain functions will be restricted" for the end user in Adobe Reader.
Does anyone have a comprehensive list of which functions are restricted for the end user?
Specifically, if cell properties in Acrobat utilize the "Calculate" function, is the "Calculate" function operational in Reader?It's mostly changes that modify the document, such as adding pages, spawning templates, etc. To get an idea, open an enabled document in Acrobat and see which tools and menu items are disabled. Form calculations certainly are not disabled or otherwise restricted.
George
Maybe you are looking for
-
Hi I'm a noobs bout blackberry (infact I dun have one) My boss blackberry kept a sent copy evrytime he emails (he use BIS service and our company doesn't have BES) and it's kept filling the sentbox folder on the server. How can I disable this feature
-
BAPI_MOSRVAPS_CREATESNPORDER - time zone issue
Hi We are creating SNP Plan Orders in APO using BAPI_MOSRVAPS_CREATESNPORDER. New Order getting created using the BAPI has time stamp 23:59:59 which is taken from UTC time zone. Is there any way we can create/load SNP Plan Order with time different t
-
KIMYONG : Forms Client Runaway 발생시 조치사항
Purpose ========= f60webmx 이 Runaway process 로 남아있을경우 불필요한 자원을 사용할수 있습니다. 이에 대한 조치사항을 기술하고자 합니다. Cause ======= 1. Forms client process (f60webmx ) database server process 와의 socket connection 이 끊겨서 발생하수 있습니다. 2. 어떠한 database server process 도 현재의 Form
-
Hi All, i need to what are accounts those are hit when we post IR recipt in MIRO. I got an idea GR/IR clearing accounting and vendor account should be hit. But there are so many entries when i am posting. Please provide me which transacti
-
Hi, I am running iTunes 11.0.2.26 on a Windows 7 pc. According to the Apple Home Sharing documentation I found, when I select File -> Home Sharing -> Turn on Home Sharing, and log in with my Apple ID, I should get an option to "Create a Home Share",