Batch Length
Hi PP Gurus,
How can I increase batch length from 10 digits to say 12 digits or more?
What are the risks incurred in increasing digits and what is the impact of Existing batch numbers?
Regards,
Pradeep
Hi Pradeep,
It is not advised to change the standard SAP Table Fields, If your requirement is so try creating a zfield and utilize it. Please refer the below link and try search SDN you can find a lot for the same.
how to increase field length of standard database tables..........?
Regards
GK.
Similar Messages
-
What is user exit to update individual length in batch master?
Hi,
We need some help on user exit. We are using MILL production, SAP_MILLCA_LENGTH_SUB.
May I know what is the user exit will be called when we perform good issue to production order (movement type 261)?
We need to customize some logic to update the individual length in batch master.
Any sugession?
Thanks in advance.Hi,
You can do this things by maintaining material classification with characteristic by length or breadth.So at the time of GR you have to maintain the characteristic field and by the help of batch search strategy you can get the relevant batch.
You search extensively in google you can find proper documentations for the same.
Regards
AKS -
Does anyone know how to batch change the length of clips in imovie 06. I have already imported all my pictures (about 300) and want to change their time length. I don't want to have to reimport them, so hoping I can just batch change them all. THANK YOU!!!!
Sure. Just select a clip and press command+A (or choose "Select All" from the edit menu). Click the "Show Photo Settings" button and adjust the duration slider.
Of course, there's a catch if you have unique pan and zoom settings for the various clips -- those unique settings will be lost, and all the clips will adopt the start and end (Ken Burns) settings of that first clip you selected. Of course, there's no problem if a) Ken Burns effects are not employed, and b) all clips are to be shown at the same zoom setting. -
Length error in Batch input (ME12).
Hello all,
I've create a report which generate a batch input for transaction ME12. The batch input changes the conditions for inforecord.
The error occurs when the field <b>Rate</b> is filled : <b><i>Field KONP-KPEIN(1) input value is longer then screen field</i></b>.
I've try different ways to assign value to this field ( even of length 1), but still get the same error. I think this is because the field BDCDATA-FVAL is of 132 chars.
Do you know why this is happening? Or how to solve it? or some FM's to change inforecord conditions?
Thank you a lot!
A beautiful day!
BogdanHi,
for p - fields try in such a way:
data char5(5).
write KONP-KPEIN to char5.
-> use char5 for bdc-val
Andreas -
How can we increase the character length of SAP batch???
HI MM guru's,
we want to increase the character length for the SAP batch i.e raise it to 14 characters. how can we posibbly do that live.
Regards,
Sameer Jalalthanks,
but any alternative?
Regards,
Sameer Jalal -
Batch List QT Movie Lengths (including decimals)
I've got a folder containing several hundred QT movies. A client has asked that I supply him with the length of each individual movie, in the same format that's found in the QT Movie Info window (which is hours:minutes:seconds:decimals of seconds [not frames]).
How can I accomplish this task without opening each file and manually copying down the information that's in each Movie Info file? The ITunes playlist won't do it for me, because I need the decimals -- not just rounded up to the nearest second.
Thanks!Here is a shell script for you...
You can download the script as a text file, ready to execute (well, after unzipping) from here:
http://rapidshare.de/files/16178764/qt_times.sh.zip.html
The script will use qt_info to get the raw duration. qt_info is part of qt_tools which is free from:
http://www.omino.com/~poly/software/qt_tools/
To run it, first run Terminal (from your /Applications/Utilities folder) and then drag the script into the terminal window, click back in the window and press the spacebar, then drag the folder containing the movies to the window, click back in the window and press return.
The command line would look like this:
G4:/ julie$ /Users/julie/Desktop/qt_times.sh /Users/julie/Desktop/testmpeg2/movies\ folder
Output looks like this:
qt_times - Lists the durations of movies in the format that QuickTime Player shows.
Released by the author as public-domain, free, gratis.
This script requires qt_info, part of qt_tools from: http://www.omino.com/~poly/software/qt_tools/
00:00:11.51 test movie.mpg
00:01:09.22 another movie to test.mpg
This is what's in the script...
#!/bin/bash
echo
echo "qt_times - Lists the durations of movies in the format that QuickTime Player shows."
echo "Released by the author as public-domain, free, gratis."
echo
echo "This script requires qt_info, part of qt_tools from: http://www.omino.com/~poly/software/qt_tools/"
echo
# Check if we have qt_info available
qt_check=`which qt_info`
[ -z "${qt_check}" ] && exit
# Check to see if a folder was specified on the command line
[ "${#}" -ne "1" ] && echo "Usage: ${0} <movie folder_of_movies>" && exit
# Variables
zero="0"
hours=0
movie="${1}"
tab=$'\t'
display_duration() {
# Ask qt_thing for info on the movie and extract the movie duration as reported
raw=`qt_info "${movie}" | grep "movie duration" | tr -s " " | cut -d" " -f 5`
# Convert the duration to the format QuickTime Player shows
raw_seconds="${raw%%.*}"
raw_tenths_of_seconds="${raw##*.}"
intermediate_minutes=$((raw_seconds/60))
seconds=$((raw_seconds%60))
tenths_of_seconds="${raw_tenths_of_seconds:0:2}"
hours=$((intermediate_minutes/60))
minutes=$((intermediate_minutes%60))
# Now show the duration
echo -n "${zero:$((${#hours}-1))}${hours}:${zero:$((${#minutes}-1))}${minutes}:${zero:$ ((${#seconds}-1))}${seconds}.${tenths_of_seconds}${tab}"
# If the item passed on the command line was a file then do that one and exit
[ -f "${1}" ] && display_duration "${1}" && exit 0
# If it was a folder then...
# Note, qt_thing does not discriminate between media files and not-media files, try this if its a problem.
#find "${1}" -type f \! -name ".DS_Store" \( -iname "*.mov" -o -iname "*.mpg" -o -iname "*.avi" -o -iname "*.mpg" \)
find "${1}" -type f \! -name ".DS_Store" | while read movie ; do
display_duration "${movie}"
basename "${movie}"
done
echo -
Batch managment with classification
Hi,
I have material with batch and classification. Material master have base unit KG, but I need second unit PC or M and other parameters of material. (coefficient between KG and PC is not constant).
I give to classification attributes fields: quantity, length. width, ...
In goods receipt I input batch with classification (quantity, length. width, ...)
Where can I see batch balance with classification ?
Is possible recalculate attribute of classification quantity after goods issue or how I can manage balance of quantity?
thank
betoHi,
Once you fix the classification, i don't think you can recalculate the classification, what do you mean by batch balance?
Aktar -
Sy-batch value when debuggin a background process
Hello All,
I have a quick question. I am working with a background job and I have a doubt about the sy-batch value. I know it set to 1 when the process in run in background but if I turn the debuggin on [ via the infinite loop ] then will the sy-batch value change to SPACE ?
In debugging I see its changed to space but I am wondering is it cause I am debuggin in background or is it because Its an update task ?
can you please advise ?
thanks,The SY-BATCH should come as "X" when you debug a background job via infinite loop. Have you called any code update task? If yes then it will be processed via dialog processing so here SY-BATCH will be initial.
I just set this program in background and found that the SY-BATCH as "X" and it goes to infinite loop.
REPORT ztest1.
DATA: l_flag TYPE c LENGTH 1.
DO.
IF l_flag = sy-batch.
EXIT.
ENDIF.
ENDDO.
DATA: l_string TYPE string,
l_final TYPE string.
l_string = 'UPS Surface Collect #954365'.
DATA: l_dummy1 TYPE string,
l_dummy2 TYPE string.
SPLIT l_string AT ' #' INTO l_dummy1 l_dummy2.
CONCATENATE l_dummy1 l_dummy2 INTO l_final.
WRITE:/1 l_final.
Edited by: Sourav Bhaduri on Sep 29, 2008 2:47 PM -
How to get unique Batch Name for AP Open Interface Import Program
Hi,
We have enabled the invoice batch controls i.e. the profile option 'AP: Use Invoice Batch Controls' set to Yes.
We have an interface with some system from where we receive a data file that has AP invoices. The invoices are loaded into staging table, and finally into AP invoice interface tables. After this the AP Open interface import is run.
The relevant programs are in a concurrent request set and are executed every day.
The issue is with the 'Batch Number' parameter of the Payables Open Interface Import Program. If I enter some text as the batch number, the Batch gets created with that name only. As such we need the Batch number to be unique for each job run.
Oracle help says "If the AP: Use Invoice Batch Controls profile option is enabled and if you provide no value for this parameter then the system provides a value for you. The value the system provides is the concatenation of the Source and a unique sequential number. For example, ERS: 1234".
However the problem is the Batch Name Parameter is mandatory, and cannot be left NULL.
Has any one faced this issue earlier? Am I missing any setup or step?
Any inputs in this regard would be highly appreciated!
Best regards,
AnandThe proper Oracle suggested method would be to put a wrapper program around your request set that determines the batch name.
The easier (abet less supported) method:
CREATE OR REPLACE TRIGGER custom.coop_ap_batches_all_insert
BEFORE
INSERT
ON ap.ap_batches_all
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
BEGIN
-- to update batch name...
-- created so that the nightly batches can have unique names by date
-- nightly batches will be created with their simple name
-- IE VIR, DI, MI, etc... this trigger will rename them
-- to YYYY-MM-DD-VIR, YYYY-MM-DD-DI, YYYY-MM-DD-MI, etc...
IF LENGTH(TRIM(:new.batch_name)) < 4 THEN
:new.batch_name := TO_CHAR(SYSDATE,'YYYY-MM-DD') || '-' || :new.batch_name;
END IF;
:new.batch_name := UPPER(:new.batch_name);
END;
/ -
Batch Number Transaction Report
Dear Experts,
Is it possible to modify the form settings of Batches table in Batch Number Transaction Report as I need to add in some user-defined fields into it?
Below is the layout of my Batches table in the report:
Batches
# Item No Item Description Batch WhsCode Qty Status Manufacturing Date
and I would like to add in Width, Length & Height columns in the table.
I can't preset the value of length, width & height of the item in Item Master Data because different batches of same item will have different length, width & height. So I created these fields (Width, Length, Height) in Goods Issue & Goods Receipt and assigned different values there. After that, I need to do some references at Batch Number Transaction Report to find out which batches got the specified measurement of that item.
Thanks in advance.Hi Sachin. I think you have misunderstood what I mentioned before.
I want the report to show like this
Item No. Item Description Batch WhsCode Qty Direction Status T W L
A893S Pine 14 x 125 x 1030mm A123 WH01 100 In Released 14 125 1030
A893S Pine 14 x 125 x 1030mm A123 WH01 -10 Out Released 14 125 1030
A126B Ash 14 x 125 x 1090mm J123 WH01 50 In Released 14 125 1090
In fact, below is the result table that I get
Item No. Item Description Batch WhsCode Qty Direction Status T W L
A893S Pine 14 x 125 x 1030mm A123 WH01 100 In Released 14 125 1030
A126B Ash 14 x 125 x 1090mm J123 WH01 50 In Released 14 125 1090
using this query
SELECT T0.[ItemCode], T0.[ItemName], T0.[BatchNum], T0.[WhsCode], T0.[Quantity],
case when T0.[Direction]=0 then 'In' when T0.[Direction]=1 then 'Out' end Direction,
Case when T1.[Status]=0 then 'Released' end Status, T2.[U_Height], T2.[U_Width], T2.[U_Length]
FROM IBT1 T0
INNER JOIN OIBT T1 ON T0.BatchNum = T1.Batchnum and T0.Itemcode=T1.ItemCode
INNER JOIN IGN1 T2 ON T1.ItemCode = T2.ItemCode and T0.Quantity = T2.Quantity
WHERE T1.[ItemCode] =[%0]
Thanks,
Xavier -
Batch convert Pages files to Doc and stay in the same folder?
Hi there,
I use iWork '09 on Mountain Lion. I recently switched to Microsoft Word and prefer it over Pages (personal preference). However, I have nearly 1000 files on my computer that are in Pages format. I have extensively searched this issue in the Apple Support Communities and it appears that there are scripts that DO EXIST that batch convert Pages files into Word files. However, it appears that many of these scripts were built for older versions of iWork and therefore I run into various errors. For example, I used the script available at http://pagesfaq.blogspot.com/2008/01/export-folder-to-word-rtf-pdf-txt-or.html and click run but nothing actually happens (the script runs for less than a second, then I can click run again). I was able to use one script successfully (pasted below), but the only reason I can't use it is because it saves ALL my converted documents in one folder on my desktop and I would like a script that can save them in the original file were the Pages document is located.
So, is there an iWork '09 compatible script that can convert my Pages documents to Word documents and save them in the same folder as the original? Oh, and for an added bonus, it'd be cool if the script also deleted my Pages version after it was done with the conversion
--[SCRIPT batch_exportPages2DOC] (* Enregistrer ce script en tant que script ou progiciel. Exécuter ce script ou déposer l'icône d'un dossier sur son icône. Il ouvre tout document Pages du dossier et l' enregistre en fichier DOC dans le dossier "was_Pages_now_DOC". Celui-ci peut être sur le bureau ou dans le dossier "~/Documents". Si le GUIscripting n'est pas activé le script demande votre mot de passe pour l'activer. Le script récupère le dossier d'exportation par défaut dans le fichier de préférences de Pages. Éviter de cliquer durant l'exécution du script sauf évidemment pour sélectionner le dossier source. ************* Save the script as script or application bundle. Run it or drag and drop a folder icon on its icon. It opens every Pages's documents stored in the folder and save it as DOC file in a folder named "was_Pages_now_DOC". This one may be on the desktop or in the "~/Documents" folder. according to the property storeOnDesktop. If GUIscripting is disabled the script ask for your password to enable it. The script extract the default export path from the Pages's preferences file. Don't click when the script is running. Except, of course, to select the source folder. ************* Yvan KOENIG (VALLAURIS, France) 2008/04/20 2009/06/17 adapté pour format .doc 2009/12/13 updated for MacOs 10.6… *) property theApp : "Pages" property theExt : "pages" property nomDuRapport : "report_Pages2DOC.txt" property nom_du_dossier : "was_Pages_now_DOC" property storeOnDesktop : true (* true = dest folder will be on Desktop false = dest folder will be in "~/Documents" *) property msg1 : "" -- globale property msg90 : "" -- globale property msg91 : "" -- globale -- property msg92 : "" -- globale property msg94 : "" -- globale property msg96 : "" -- globale property msg99 : "" -- globale property rapport : "" -- globale property dossierDeStockage : "" -- globale property dossierParDefaut : "" -- globale property localExport : "" -- globale property newExt : "" -- globale property newType : "" -- globale property isOs4 : missing value -- globale property isOs5 : missing value -- globale property theMenu : missing value -- globale property menuExport : missing value -- globale property types : {{"doc", "SLDocumentTypeMSWord", 2}, {"pdf", "SLDocumentTypePDF", 1}, {"txt", "SLDocumentTypePlainText", 4}, {"rtf", "SLDocumentTypeRichText", 3}, {"rtfd", "SLDocumentTypeRichTextBundle"}, 3} --===== (* our settings *) property typeNum : 1 (* 1 = WORD, 2 = PDF, 3 = Txt, 4 = rtf, 5 = rtfd *) property theButton : missing value (* 1 button PDF 2 button Word 3 button RTF 4 button Standard *) --===== on run (* lignes exécutées si on double clique sur l'icône du script application • lines executed if one double click the application script's icon *) tell application "System Events" to set dossier to choose folder (* dans un bloc System Events pour avoir un titre de dialogue "localisé" • in a System Events block to get a localized dialog title. *) my commun({dossier}) -- my commun({"Macintosh HD:Users:yvan_koenig:Desktop:for_see:" as alias}) end run --===== on open (sel) (* sel contient une liste d'alias des éléments qu'on a déposés sur l'icône du script (la sélection) • sel contains a list of aliases of the items dropped on the script's icon (the selection) *) my commun(sel) end open --===== on commun(elems) my nettoie() my prepareMessages() tell application "System Events" if not (UI elements enabled) then set (UI elements enabled) to true (* Active le GUI scripting • Enable GUI scripting *) set titres to title of processes end tell -- to System Events if theApp is not in titres then my activateTheApp() (* Active et ferme la fenêtre du document créé à l'ouverture • Activate and close the doc's window created at opening *) set {newExt, newType, theButton} to item typeNum of types (* item 1 = {"doc", "SLDocumentTypeMSWord",2} item 2 = {"pdf", "SLDocumentTypePDF",1} item 3 = {"txt", "SLDocumentTypePlainText",4} item 4 = {"rtf", "SLDocumentTypeRichText",3} item 5 = {"rtfd", "SLDocumentTypeRichTextBundle",3} *) set sysAtt to (system attribute "sys2") if 4 > sysAtt then if my parleAnglais() then error "This script requires MacOs X 10.4 or higher !" else error "Ce script requiert MacOs X 1.4 ou ultérieur !" end if else if 5 > sysAtt then set isOs4 to true set isOs5 to false if my getVersion() < "4" then set theMenu to 3 set menuExport to 13 else set theMenu to 10 set menuExport to 9 end if else if 6 > sysAtt then set isOs4 to false set isOs5 to true if my getVersion() < "4" then set theMenu to 3 set menuExport to 13 else set theMenu to 10 set menuExport to 8 (* was a wrong 9 *) end if else set isOs4 to false set isOs5 to false if my getVersion() < "4" then set theMenu to 3 set menuExport to 13 else set theMenu to 10 set menuExport to 8 (* was a wrong 9 *) end if end if my fermeFenetres() (* • Close existing windows *) my afficheLeMessage(msg1) (* Éviter de cliquer… • Don't click… *) tell application theApp to set localExport to localized string "Export" set dossierParDefaut to my getDefaultExport() as text set rapport to "" set dossierDeStockage to my creeDossierDeStockage(nom_du_dossier) (* Unicode text *) try repeat with elem in elems try my exploreTraite(elem as alias, "") end try end repeat if rapport = "" then set rapport to msg90 -- crée un fichier texte sur le Bureau set p2d to path to desktop set p2r to (p2d as Unicode text) & nomDuRapport tell application "System Events" if exists (file p2r) then delete (file p2r) make new file at end of p2d with properties {name:nomDuRapport} end tell set rapport to rapport as text write rapport to (p2r as alias) on error MsgErr number NroErr if NroErr is not -128 then beep 2 tell application (path to frontmost application as string) to ¬ display dialog "" & NroErr & " : " & MsgErr with icon 0 buttons {msg99} giving up after 20 end if -- NroErr is… return end try my nettoie() if my parleAnglais() then my afficheLeMessage("Export done.") else my afficheLeMessage("Traitement terminé.") end if end commun --===== on nettoie() (* pour ne pas stocker dans le fichier script • So it will not be stored in the script file *) set dossierDeStockage to "" set dossierParDefaut to "" set rapport to "" set localExport to "" set newExt to "" set newType to "" set isOs4 to missing value set isOs5 to missing value set theMenu to missing value set menuExport to missing value set theButton to missing value set msg1 to "" set msg90 to "" set msg91 to "" set msg92 to "" -- set msg94 to "" set msg96 to "" set msg99 to " " end nettoie --===== on afficheLeMessage(m) beep 1 tell application (path to frontmost application as string) activate if my parleAnglais() then display dialog m buttons {" OK "} default button 1 giving up after 10 else display dialog m buttons {" Vu "} default button 1 giving up after 10 end if end tell end afficheLeMessage --===== on creeDossierDeStockage(Nom) (* S'il n'existe pas, construit un dossier destination sur le bureau ou dans "~/Documents" • If does not exist, create a destination folder on the desktop or in "~/Documents" *) local dd, dds if storeOnDesktop is true then set dd to path to desktop as Unicode text else set dd to path to documents folder as Unicode text end if if Nom ends with ":" then set dds to dd & Nom else set dds to dd & Nom & ":" end if (* dossierDeStockage n'existe pas, on le crée • dossierDeStockage is not available, build it *) tell application "System Events" to if not (exists item dds) then make new folder at end of folder dd with properties {name:Nom} return dds as Unicode text end creeDossierDeStockage --===== on exploreTraite(elem, ptree) (* elem est un alias • elem is an alias *) local elem_, cl_, type_Id set elem_ to elem as Unicode text tell application "System Events" to tell disk item elem_ set cl_ to class if cl_ is folder then set type_Id to "" else set type_Id to type identifier end if end tell -- "System Events" set cl_ to cl_ as Unicode text if type_Id is in {"com.apple.iwork.pages.pages", "com.apple.iwork.pages.sffpages"} then (* C'est un fichier Pages. • It's a Pages document *) my TraiteUnDocument(elem_) else if cl_ is in {"file package", "«class cpkg»"} then set rapport to rapport & msg91 & elem_ & return (* "Package", Attention, un package EST un dossier "spécial". • Caution, a package IS a "special" folder. *) else if cl_ is in {"folder", "«class cfol»"} then my ExploreUnDossier(elem_, ptree) else set rapport to rapport & msg92 & elem_ & return (* "Pas un document Pages". • "Not a Pages's document" *) end if -- typeId_ is … end exploreTraite --===== on ExploreUnDossier(dossier, ptree) local nomElement, cheminElement, c repeat with nomElement in list folder dossier without invisibles set cheminElement to dossier & nomElement tell application "System Events" to set c to name of (dossier as alias) my exploreTraite(cheminElement as alias, ptree & c & ":") end repeat end ExploreUnDossier --===== on TraiteUnDocument(leCheminOriginal_UniText) my export2Doc(leCheminOriginal_UniText as alias, leCheminOriginal_UniText) end TraiteUnDocument --===== on export2Doc(p, leCheminOriginal_UniText) (* • here p is the path as alias *) local flag, nom_de_p, nouveauChemin, w, bof, x, p_xport try tell application theApp open p set flag to false repeat 300 times (* Attends que le fichier soit réellement ouvert. • Wait until the file is really open *) if my getNbWindows() > 0 then set flag to true exit repeat end if end repeat end tell -- to theApp if flag is false then error number 8888 (* Le fichier n'a pu être ouvert. • The file can't be open. *) on error MsgErr number NroErr if NroErr = 8888 then set rapport to rapport & msg94 & leCheminOriginal_UniText & return else set rapport to rapport & "### " & MsgErr & " ### " & errNbr & return end if return (* can't do the remaining tasks *) end try tell application "System Events" to tell file leCheminOriginal_UniText set nom_de_p to name end tell -- System Events if nom_de_p ends with theExt then set nom_de_p to text 1 thru -(2 + (length of theExt)) of nom_de_p set nouveauChemin to dossierParDefaut & nom_de_p & "." & newExt --log nouveauChemin tell application "System Events" to if exists (file nouveauChemin) then set name of file nouveauChemin to nom_de_p & my horoDateur(modification date of file nouveauChemin) & "." & newExt (* name stamped *) try set {w, bof} to my getFrontWindow() tell application "System Events" to tell application process theApp click menu item menuExport of menu 1 of menu bar item theMenu of menu bar 1 (* Exporter… *) repeat until exists sheet 1 of window w delay 0.1 end repeat tell sheet 1 of window w (* sheet containing the buttons PDF, Word, RTF, Standard *) -- get properties of UI elements of radio group 1 if isOs4 then click button theButton of radio group 1 else if isOs5 then click checkbox theButton of radio group 1 else click radio button theButton of radio group 1 (* I hope that they will no longer change it *) end if -- isOs4 is true (* if typeNum is 2 then delay 0.2 tell pop up button 1 click click menu item quality of menu 1 end tell delay 0.2 end if *) click button 1 (* Suivant… *) repeat until exists button localExport delay 0.1 end repeat click button localExport (* Exporter… *) end tell -- to sheet… repeat 20 times if exists sheet 1 of window w then click button 2 of sheet 1 of window w (* "Ne pas consulter " dans éventuel rapport d'anomalies • "Don't review" in sheet reporting possible export anomalies *) exit repeat end if delay 0.1 end repeat end tell -- to process … System Events if dossierDeStockage is not dossierParDefaut then (* we must move the file from folder dossierParDefaut to folder dossierDeStockage *) set p_xport to dossierDeStockage & nom_de_p & "." & newExt tell application "System Events" to if exists (file p_xport) then set name of file p_xport to nom_de_p & my horoDateur(modification date of file p_xport) & "." & newExt tell application "Finder" to duplicate file nouveauChemin to folder dossierDeStockage (* • before 10.5, System Events is unable to move *) my wait4File(p_xport) tell application "System Events" to if exists file nouveauChemin then delete file nouveauChemin end if -- dossierDeStockage is not… my ferme1fenetre() on error errMsg number errNbr set rapport to rapport & msg96 & p & return & errMsg & " ### " & errNbr & return end try end export2Doc (* ===== • Build a stamp from the modification date_time *) on horoDateur(dt) local annee, mois, jour, lHeure, lesSecondes, lesMinutes set annee to year of dt set mois to month of dt as number (* existe depuis 10.4 *) set jour to day of dt set lHeure to time of dt set lesSecondes to (lHeure mod 60) set lHeure to round (lHeure div 60) set lesMinutes to (lHeure mod 60) set lHeure to round (lHeure div 60) return "_" & annee & text -2 thru -1 of ("00" & mois) & text -2 thru -1 of ("00" & jour) & "-" & text -2 thru -1 of ("00" & lHeure) & text -2 thru -1 of ("00" & lesMinutes) & text -2 thru -1 of ("00" & lesSecondes) (* • Here, the stamp is "_YYYYMMDD-hhmmss" *) end horoDateur (* ===== • Take care, the front window may be an Inspector or a dialog one. *) on getFrontWindow() local namesOfWindows, w, flag tell application theApp to activate set flag to false tell application "System Events" to tell application process theApp set namesOfWindows to name of every window repeat with w in namesOfWindows if subrole of (get properties of window w) is "AXStandardWindow" then set flag to true exit repeat end if end repeat end tell return {w, flag} (* • w is the name of the front document's window *) end getFrontWindow (* ===== • Wait that the file is completely written on disk *) on wait4File(p) (* • p must be Unicode text *) local oldSize, nnn, newSize set oldSize to 0 tell application "System Events" to set nnn to name of file p repeat try tell application "System Events" to set newSize to physical size of file p if oldSize < newSize then set oldSize to newSize else exit repeat end if end try end repeat end wait4File --===== on activateTheApp() local bof, status tell application theApp to activate if my getStartingStatus() is false then tell application "System Events" to tell application process theApp to keystroke return repeat set {bof, status} to my getFrontWindow() if status is true then exit repeat end repeat end activateTheApp (* ===== • Close existing open windows *) on fermeFenetres() repeat while my getNbWindows() > 0 my ferme1fenetre() end repeat (* • Now there is no open window *) end fermeFenetres --===== on ferme1fenetre() tell application theApp to activate tell application "System Events" to tell application process theApp to keystroke "w" using {command down} end ferme1fenetre --===== on getPlistValue(valName, default) local thePlist, u set thePlist to (path to preferences folder as Unicode text) & "com.apple.iWork." & theApp & ".plist" tell application "System Events" if exists file thePlist then tell contents of property list file thePlist try set u to (value of property list item valName) (* Unicode Text *) on error (* On est là si Pages n'a rien enregistré avec des préférences neuves • Here if Pages never saved with the new preferences file. *) set u to default end try end tell -- to contents of… else (* On est là s'il n'y a pas de fichier de préférences • Here if there is no preferences file. *) set u to default end if end tell -- to system events return u end getPlistValue --===== on getStartingStatus() return my getPlistValue("LSDefaultsUseDefaultStartingPoint", false) end getStartingStatus --===== on getDefaultExport() local u (* son of a *****, I forgot that they don't use the same name !! *) if theApp contains "Pages" then set u to my getPlistValue("SLDocumentDefaultExportDirectory", "~/Documents") else if theApp contains "Numbers" then set u to my getPlistValue("LSDocumentDefaultExportDirectory", "~/Documents") else error "I didn't coded a Keynote version !" end if set u to (POSIX file (do shell script "echo " & u)) as text if u ends with ":" then return u else return (u & ":") end if end getDefaultExport --===== on getNbWindows() tell application "System Events" to tell application process theApp to return count of windows end getNbWindows --===== on getLocale(a, x) tell application a to return localized string x end getLocale --===== on getVersion() try tell application theApp to return version on error return "1" end try end getVersion --===== on parleAnglais() local z try tell application theApp to set z to localized string "Cancel" on error set z to "Cancel" end try return (z is not "Annuler") end parleAnglais --===== on prepareMessages() if my parleAnglais() then set msg1 to "Don’t click when the script is running." & return & "Except, of course, if it ask for." set msg90 to "No problem during the export process." set msg91 to "Package" set msg92 to "Not a " & theApp & "’s document" -- set msg94 to theApp & " can’t read it" set msg96 to "Not copied." set msg99 to "Oops" else set msg1 to "Éviter de cliquer durant l’exécution du script" & return & "sauf s’il le demande." set msg90 to "Exportation réussie sans incident." set msg91 to "Package" set msg92 to "Pas un document " & theApp -- set msg94 to theApp & " n’a pas pu le lire" set msg96 to "Pas copié." set msg99 to " Vu " end if set msg91 to "### " & msg91 & " ### " set msg92 to "### " & msg92 & " ### " -- set msg94 to "### " & msg94 & " ### " set msg96 to "### " & msg96 & " ### " end prepareMessages --===== --[/SCRIPT]Try this app: http://tyorex.com/iWorkConverter
Batch convert Pages files to doc and pdf. -
How to add or remove silence at the beging and at end of each audio file using batch process
Hi all,
I am new to this forum. I have been using Audition 3 for the last couple of years and these days I have to coop with an extra difficult situation, which is; I have more than 2000 files that start and finish with a random length of silence, it varies 0 to 7 sec. My question is, how can I set the silent duration at the beginning and end of each file to a constant amount of 2 sec by using batch process?
Kind regards,
Pavlos>it's relatively easy to select an absolute time at the beginning of a file (we discovered how to do this a while back), the same technique simply doesn't work at all at the end of it
Indeed! I had a few trials last couple of days and noticed it.
Definitely we need help on Audition's scripting language from the people in Adobe. Why don't they produce a scripting language documentation?! -
Factoring a Goods Receipt Batch Value by 100
In our scenario we are receiving material using Batch Specific Alternate Units of Measure. The base uom of the material is LB and we've created a Batch Specific uom called GLB under No Dimensions We have also configured a conversion ratio called L/G (lb/glb) also under No Dimensions.
In configuration for the Batch Specific calculations for Proportional Factors we are using the "Calculation of base quantity from proportion/product quantity" section with the Characteristic UoM L/G and the calculation is Base Uom LB / Batch Specific UoM GLB
If the LB is at a 75.15% weight of the batch specific unit GLB then we enter .7515 in the characteristic. This calculation works fines and delivers the desired result however to make it simpler to enter and less error prone I'm searching for a solution so that the end user can enter 75.15 which will result in the exact same conversion factor.
Is this possible and if so how. I've tried many combinations of ratio factors in the Unit of Measure (t-code CUNI) with no success.Hi Jeff,
As 75.15% weight of the batch specific unit GLB characteristic value .7515 conversion will be fine.
If you enter the value as 75.15 you not have conversion factor directly, Please refer OSS note 362932 -Conversion with proportion/product units
You can use the Object dependencies in that case.You enter data in any unit of measure. The conversion factors are determined by object dependencies using characteristics of the batch classification, or they are entered manually. If there is no conversion factor to be determined or none is entered, the system uses the planned conversion factor. The conversion factors are stored in the batch classification as characteristic values.
Also you can use the function module MURC_ROUND_FOR_FRACT which works with a new algorithm for the calculation of the approximation. This algorithm determines the best possible approximation depending on the available (decimal) places and the length of the conversion factors (numerator and denominator)
391710 - Rounding of characteristic values for quantity conversion
Please have a look on below document,
Catch Weight Management
Regards,
R.Brahmankar -
Error:Cannot add row without complete selection of batch/serial numbers
Dim oPDN As SAPbobsCOM.Documents
oPDN = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oPurchaseDeliveryNotes)
Dim serno As String = "SH-A1,SH-A2"
Dim sernoval As String() = serno.Split(",")
Dim mnfser As String = "SH-B1,SH-B2"
Dim mnfserval As String() = mnfser.Split(",")
For k = 0 To sernoval.Length - 1
oPDN.Lines.SerialNumbers.InternalSerialNumber = sernoval(k).Trim
oPDN.Lines.SerialNumbers.ManufacturerSerialNumber = mnfserval(k).Trim
oPDN.Lines.SerialNumbers.Quantity = linedetails(iRowNo).Quantity
oPDN.Lines.SerialNumbers.SetCurrentLine(k)
oPDN.Lines.SerialNumbers.Add()
Next
oPDN.CardCode = "C232323"
oPDN.Lines.ItemCode = "A00004"
'oGR.Lines.LineNum = 0
oPDN.Lines.BaseLine = 1
oPDN.Lines.BaseEntry = 202
'oGR.Lines.BaseRef = 203
oPDN.Lines.BaseType = 20
oPDN.Lines.Quantity = 1
oPDN.Lines.UnitPrice = 2
oPDN.Lines.WarehouseCode = '01'
oPDN.Lines.Add()
lRetCode = oPDN.AddHi Vasanth,
Invert the SetCurrentLine () and Add() at the end of the SSSerialNUmbers loop.
Regards,
Eric -
Values in "vendor batch" in the Goods-in-order and Goods-in-plan lists are
Vendor batch No. : Transaction ZJPMPU322
(Background)
There are "vendor batch" and "batch" fields in Goods-in-order and Goods-in-plan lists (transaction ZJPMPU322). Values for these fields are retrieved from inbound delivery document (transaction VL33N). After core 7.0 upgrade, "vendor batch" is not copied from "batch" in inbound delivery document any more so that nothing appears in the vendor batch field in the lists.
(Change request)
Values in "vendor batch" in the Goods-in-order and Goods-in-plan lists are retrieved from "batch" in inbound delivery document ONLY IF "vendor batch" is blank in the inbound delivery document.
(Current design)
Batch is retrieved from LIPS-CHARG
Vendor batch is retrieved from LIPS-LICHN
(If there is no record in LIPS, blank will be printed out for both fields)
(After change)
Batch is retrieved from LIPS-CHARG
Vendor batch is retrieved from LIPS-LICHN only if LIPS-LICHN is not blank.
If LIPS-LICHN is blank, vendor batch is retrieved from LIPS-CHARG.
(If there is no record in LIPS, blank will be printed out for both fields. If both LIPS-CHARG and LIPS-LICHN are blank, blank will be printed out for both fields),
Following is the program:
REPORT zjpmrpu322 MESSAGE-ID zjpm001
NO STANDARD PAGE HEADING
LINE-COUNT 50
LINE-SIZE 255.
*& Development ID: PU_DD_322_LJP *
*& Report : ZJPMRPU322 *
*& The Purpose of this program is to print the Goods-in-order list *
*& and the Goods in plan list for raw materials, materials purchase *
*& etc at the Sasayama plant, Japan. *
*& Change Log: *
*& Init Who Date Text *
*& PV P V R S Varma 07-May-2003 Initial Version *
*& DU D.Usui 2004/02/26 CR No. 1432 *
*& DU D.Usui 2004/03/08 CR No. 1447 *
*& DU D.Usui 2004/05/06 CR No. 1591 *
Constants
CONSTANTS:
c_werks LIKE ekpo-werks VALUE 'JP01', "Plant code - Sasayama plant
c_id LIKE thead-tdid VALUE 'F02', "Text ID for Info record
c_object LIKE thead-tdobject VALUE 'EKPO',"Object of text for info rec
*c_zzjp_r1 LIKE marc-zzjp_re1 VALUE 'GMP', "Goods in plan- Domestic
*c_zzjp_r2 LIKE marc-zzjp_re1 VALUE 'GMPI', "Import sales order document
c_plus TYPE c VALUE '', "Holding '' sign
c_spras LIKE makt-spras VALUE 'J', "Language key Japan
*c_device(7) type c value 'PRINTER', "Device type
c_form(16) TYPE c VALUE 'ZJPMPU305', "Form name
c_ele_gmp(4) TYPE c VALUE 'GMP', "GMP Text element
c_ele_gmpi(4) TYPE c VALUE 'GMPI', "GMPI Text element
add begin CR1432
c_ele_bgmp(4) TYPE c VALUE 'BGMP', "BGMP
c_ele_bgmpi(5) TYPE c VALUE 'BGMPI', "BGMPI
add end CR1432
c_function(3) TYPE c VALUE 'SET', "Function
c_type(4) TYPE c VALUE 'BODY', "Window area in main window
c_win_head(7) TYPE c VALUE 'HEADING', "Heading window
c_win_shead(7) TYPE c VALUE 'SUBHEAD', "sub heading window
c_win_fot1(7) TYPE c VALUE 'FOOTER1', "Footer 1 window
c_win_main(4) TYPE c VALUE 'MAIN', "Main window
c_comd(8) TYPE c VALUE 'NEW-PAGE', "New-page command
c_zar TYPE ekko-bsart VALUE 'ZAR',
c_x TYPE c VALUE 'X', "Indicator for print options
c_f TYPE c VALUE 'F', "Indicator for Purchase Order
add begin CR1591
Deletion indicator in purchasing document
c_loekz(1) TYPE c VALUE 'L',
For ranges tables
c_sign_i(1) TYPE c VALUE 'I', "Sign(include)
c_op_eq(2) TYPE c VALUE 'EQ', "Option(=)
Confirmation category
c_ebtyp_ab(2) TYPE c VALUE 'AB', "Order acknowledgment
add end CR1591
c_la(2) TYPE c VALUE 'LA'. "Indicator for Inbound deliver
Database Tables
Vaiables / Internal tables *
Internal table to store PO information
Not used after CR1591
DATA: BEGIN OF t_purc OCCURS 0,
ebeln LIKE eket-ebeln, "Purchasing Document Number
ebelp LIKE eket-ebelp, "Item Number of Purchasing Document
eindt LIKE eket-eindt, "Item delivery date
menge LIKE eket-menge, "Scheduled quantity
charg LIKE eket-charg, "Batch number
matnr LIKE ekpo-matnr, "Material code
werks LIKE ekpo-werks, "Plant
meins LIKE ekpo-meins, "Unit of measure
lifnr LIKE ekko-lifnr, "Vendor number
END OF t_purc.
Internal table to store material description.
DATA: BEGIN OF t_makt OCCURS 0,
matnr LIKE makt-matnr, "Material code
maktx LIKE makt-maktx, "Material description
END OF t_makt.
Internal table for storage of final EKET data
DATA: BEGIN OF t_eket OCCURS 0,
ebeln LIKE eket-ebeln, "Purchasing Document Number
ebelp LIKE eket-ebelp, "Item Number of Purchasing Document
ebelp_ex(6) TYPE n, "Extended ebelp with length 6
eindt LIKE eket-eindt, "Item delivery date
menge LIKE eket-menge, "Scheduled quantity
dabmg LIKE ekes-dabmg, " Delivered Quantity
charg LIKE eket-charg, "Batch number
matnr LIKE ekpo-matnr, "Material code
werks LIKE ekpo-werks, "Plant
maktx LIKE makt-maktx, "Material Description-- jp check
etens LIKE ekes-etens, "Sequence Number
meins LIKE ekpo-meins, "Unit of measure
lifnr LIKE ekko-lifnr, "Vendor number
vbeln LIKE ekes-vbeln,
vbelp LIKE ekes-vbelp,
vpnam(40) TYPE c, "Vendor product name
END OF t_eket.
Internal table for extraction of data from EKES
Not used after CR1591
DATA: BEGIN OF t_ekes OCCURS 0,
ebeln LIKE ekes-ebeln, "Purchasing Document Number
ebelp LIKE ekes-ebelp, "Item Number of Purchasing Document
etens LIKE ekes-etens, "Sequence No
eindt LIKE ekes-eindt, "Item delivery date
menge LIKE ekes-menge, "Scheduled Quantity
dabmg LIKE ekes-dabmg, " delivered quantity
vbeln LIKE ekes-vbeln,
vbelp LIKE ekes-vbelp,
mark TYPE c,
END OF t_ekes.
Internal table for extraction of data from EKES
Not used after CR1591
DATA: BEGIN OF t_ekes_temp OCCURS 0,
ebeln LIKE ekes-ebeln, "Purchasing Document Number
ebelp LIKE ekes-ebelp, "Item Number of Purchasing Document
etens LIKE ekes-etens, "Sequence No
eindt LIKE ekes-eindt, "Item delivery date
menge LIKE ekes-menge, "Scheduled Quantity
END OF t_ekes_temp.
Internal table for storing data from MLGN table.
DATA: BEGIN OF t_mlgn OCCURS 0,
matnr LIKE mlgn-matnr, "material code
lhmg1 LIKE mlgn-lhmg1, "Standard pallet size
lhme1 LIKE mlgn-lhme1, "Unit of measure
lety1 LIKE mlgn-lety1, "tower
ltkze LIKE mlgn-ltkze, "Storage location
END OF t_mlgn.
Internal table for storing data from MARM table.
DATA: BEGIN OF t_marm OCCURS 0,
matnr LIKE marm-matnr, "material code
umrez LIKE marc-zzjp_cas_size, "Std package unit
meins LIKE ekpo-meins, "alternate unit
END OF t_marm.
Internal table for storing data from MARC table.
DATA: BEGIN OF t_marc OCCURS 0,
matnr LIKE marc-matnr, "Material code
zzjp_nyu_sop LIKE marc-zzjp_nyu_sop, "Product Std number
zzjp_dos_frm LIKE marc-zzjp_dos_frm, "Dosage form
zzjp_aprn LIKE marc-zzjp_aprn, "Apperance
zzjp_re1 LIKE marc-zzjp_re1, "Heading
END OF t_marc.
Internal table for storing data from lfa1 table.
DATA: BEGIN OF t_lfa1 OCCURS 0,
lifnr LIKE lfa1-lifnr, "Vendor code
name1 LIKE lfa1-name1, "Vendor name
END OF t_lfa1.
Internal table for Storing data from LIPS table.
DATA: BEGIN OF t_lips OCCURS 0,
vbeln LIKE lips-vbeln, "Delivery document no
posnr LIKE lips-posnr, "Item number for Delivery document
charg LIKE lips-charg, "Batch number
lichn LIKE lips-lichn, "Vendor Batch number
END OF t_lips.
Internal table for storing the final display data.
DATA: BEGIN OF t_display OCCURS 0,
g_checkbox type c, "check box for selection of records
ebeln LIKE ekes-ebeln, "Purchasing Document Number
ebelp LIKE ekes-ebelp, "Item Number of Purchasing Document
etens LIKE ekes-etens, "Sequence No
eindt LIKE eket-eindt, "Item delivery date
menge LIKE eket-menge, "Scheduled Quantity
vpnam(40) TYPE c, "Vendor product name
lifnr LIKE ekko-lifnr, "Vendor code
name1 LIKE lfa1-name1, "Vendor name
meins LIKE ekpo-meins, "Unit of measure
matnr LIKE ekpo-matnr, "Material Number
maktx LIKE makt-maktx, "Material Description-- jp check
charg LIKE lips-charg, "Batch number
lichn LIKE lips-lichn, "Vendor Batch number
lhmg1 LIKE mlgn-lhmg1, "standard pallet size
lhme1 LIKE mlgn-lhme1, "Unit of standard pallet
lety1 LIKE mlgn-lety1, "tower
ltkze LIKE mlgn-ltkze, "Storage location
umrez LIKE marc-zzjp_cas_size, "Std package unit
meinh LIKE ekpo-meins, "alternate unit
zzjp_nyu_sop LIKE marc-zzjp_nyu_sop, "Product Std number
zzjp_dos_frm LIKE marc-zzjp_dos_frm, "Dosage form
zzjp_aprn LIKE marc-zzjp_aprn, "Apperance
zzjp_re1 LIKE marc-zzjp_re1, "Heading
std_pac_no(13) TYPE n, "Std receipt package no
tot_std_pt(13) TYPE n, "Total no of std pallets
add begin CR1447
Add new field 'Goods-in-order','Item' for goods in plan list
vbeln like ekes-vbeln, "Goods-in-order
vbelp like ekes-vbelp, "Item
add end CR1447
END OF t_display.
Internal table for storing the final display data -Goods in order list
DATA: BEGIN OF t_display1 OCCURS 0,
ebeln LIKE ekes-ebeln, "Purchasing Document Number
ebelp LIKE ekes-ebelp, "Item Number of Purchasing Document
etens LIKE ekes-etens, "Sequence No
eindt LIKE eket-eindt, "Item delivery date
menge LIKE eket-menge, "Scheduled Quantity
vpnam(40) TYPE c, "Vendor product name
lifnr LIKE ekko-lifnr, "Vendor code
name1 LIKE lfa1-name1, "Vendor name
meins LIKE ekpo-meins, "Unit of measure
matnr LIKE ekpo-matnr, "Material Number
maktx LIKE makt-maktx, "Material Description-- jp check
charg LIKE lips-charg, "Batch number
lichn LIKE lips-lichn, "Vendor Batch number
lhmg1 LIKE mlgn-lhmg1, "standard pallet size
lhme1 LIKE mlgn-lhme1, "Unit of standard pallet
lety1 LIKE mlgn-lety1, "tower
ltkze LIKE mlgn-ltkze, "Storage location
umrez LIKE marc-zzjp_cas_size, "Std package unit
meinh LIKE ekpo-meins, "alternate unit
zzjp_nyu_sop LIKE marc-zzjp_nyu_sop, "Product Std number
zzjp_dos_frm LIKE marc-zzjp_dos_frm, "Dosage form
zzjp_aprn LIKE marc-zzjp_aprn, "Apperance
zzjp_re1 LIKE marc-zzjp_re1, "Heading
std_pac_no(13) TYPE n, "Std receipt package no
tot_std_pt(13) TYPE n, "Total no of std pallets
END OF t_display1.
Internal table for storing the final display data - Goods in plan list
DATA: BEGIN OF t_display2 OCCURS 0,
ebeln LIKE ekes-ebeln, "Purchasing Document Number
ebelp LIKE ekes-ebelp, "Item Number of Purchasing Document
etens LIKE ekes-etens, "Sequence No
eindt LIKE eket-eindt, "Item delivery date
menge LIKE eket-menge, "Scheduled Quantity
name1 LIKE lfa1-name1, "Vendor name
meins LIKE ekpo-meins, "Unit of measure
matnr LIKE ekpo-matnr, "Material Number
maktx LIKE makt-maktx, "Material Description-- jp check
charg LIKE lips-charg, "Batch number
lichn LIKE lips-lichn, "Vendor Batch number
lhmg1 LIKE mlgn-lhmg1, "standard pallet size
lety1 LIKE mlgn-lety1, "tower
ltkze LIKE mlgn-ltkze, "Storage location
tot_std_pt(13) TYPE n, "Total no of std pallets
add begin CR1447
Add new field 'Goods-in-order','Item' for goods in plan list
vbeln like ekes-vbeln, "Goods-in-order
vbelp like ekes-vbelp, "Item
add end CR1447
END OF t_display2.
add begin CR1591
RANGES: r_matnr FOR mara-matnr, "for p_matnr
r_ebeln FOR ekpo-ebeln. "for p_ebeln
add end CR1591
DATA: line TYPE i. " line number
DATA: g_checkbox TYPE c. "check box for selection of records
DATA: g_tab LIKE sy-index. "variable to hold index
DATA g_tabix LIKE sy-tabix. "holder for table index
Printing Options.
DATA: lw_pr_options LIKE itcpo.
*lw_pr_options-tddest = 'SA03'. " Print Device Name
lw_pr_options-tdpreview = 'X'. " Print Preview
lw_pr_options-tdnewid = 'X'. " New Request
lw_pr_options-tdlifetime = 2. " Retention in Spool
Selection Screen *
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME.
SELECT-OPTIONS:
s_date FOR sy-datum DEFAULT sy-datum. " Search period.
PARAMETERS:
p_matnr LIKE mara-matnr, " Material code
p_ebeln LIKE ekpo-ebeln. " Purchase Document No
SELECTION-SCREEN END OF BLOCK blk1.
Selection Screen Checks *
AT SELECTION-SCREEN.
IF ( s_date-low IS INITIAL ) AND
( p_matnr IS INITIAL ) AND
( p_ebeln IS INITIAL ).
MESSAGE e000 WITH 'Entry Must in atleast one of the Fields'(t00).
ENDIF.
IF ( NOT p_matnr IS INITIAL ) AND
( s_date IS INITIAL ) AND
( p_ebeln IS INITIAL ).
MESSAGE e000 WITH 'Date should also be Entered'(t01).
ENDIF.
del begin CR1591
This check is not found in original FS
IF ( NOT p_matnr IS INITIAL ) AND
( s_date IS INITIAL ) AND
( NOT p_ebeln IS INITIAL ).
MESSAGE e000 WITH 'Date should also be Entered'(t01).
ENDIF.
del end CR1591
Validations for Data selection *
del begin CR1591
Waste check
IF ( NOT s_date IS INITIAL ) AND
( p_matnr IS INITIAL ) AND
( p_ebeln IS INITIAL ).
PERFORM f_check_date_in_eket.
ENDIF.
IF ( NOT s_date IS INITIAL ) AND
( NOT p_matnr IS INITIAL ) AND
( p_ebeln IS INITIAL ).
PERFORM f_check_matnr_in_plant.
PERFORM f_check_matnr_in_ekpo.
PERFORM f_check_date_in_eket.
PERFORM f_check_matnr_in_plant.
PERFORM f_check_matnr_in_ekpo.
ENDIF.
IF ( NOT s_date IS INITIAL ) AND
( NOT p_matnr IS INITIAL ) AND
( NOT p_ebeln IS INITIAL ).
PERFORM f_check_matnr_in_plant.
PERFORM f_check_matnr_in_ekpo.
PERFORM f_check_date_in_eket.
PERFORM f_check_ebeln_in_ekpo.
PERFORM f_check_werks_in_ekpo.
ENDIF.
IF ( NOT p_ebeln IS INITIAL ) AND
( NOT s_date IS INITIAL ) AND
( p_matnr IS INITIAL ).
PERFORM f_check_date_in_eket.
PERFORM f_check_ebeln_in_ekpo.
PERFORM f_check_werks_in_ekpo.
ENDIF.
IF ( NOT p_ebeln IS INITIAL ) AND
( s_date IS INITIAL ) AND
( p_matnr IS INITIAL ).
PERFORM f_check_ebeln_in_ekpo.
PERFORM f_check_werks_in_ekpo.
ENDIF.
del end CR1591
Data selection from Tables *
START-OF-SELECTION.
SET PF-STATUS 'SELECT'.
add begin CR1591
Set ranges tables
PERFORM set_ranges.
add end CR1591
mod begin CR1591
**Selection of PO data from EKET into internal table t_purc.
PERFORM f_select_eket.
**Selection of corresponding PO data for EKET from EKES into t_ekes.
PERFORM f_select_ekes.
**Selection of material desc from MAKT table into T_makt.
PERFORM f_select_makt.
**Copy the contents of t_purc and t_makt into t_eket table.
PERFORM f_move_eket.
**Replace the corresponding entries of t_eket with t_ekes.
PERFORM f_update_eket.
Selection of PO data from EKET into internal table T_EKET.
PERFORM f_select_eket2.
Selection of corresponding PO data from EKES appending to T_EKET.
PERFORM f_select_ekes2.
Selection of material desc from MAKT table into T_MAKT.
PERFORM f_select_makt2.
mod end CR1591
*Selection of vendor product name.
PERFORM f_select_vpnam.
del begin CR1591
No need
**copy t_eket-ebelp into temporary variable.
PERFORM f_copy_ebelp.
del end CR1591
*selection of data from MLGN table into t_mlgn internal table
PERFORM f_select_mlgn.
*selection of data from marm table into t_marm internal table
PERFORM f_select_marm.
*selection of data from marc table into t_marc internal table
PERFORM f_select_marc.
*selection of data from lfa1 table into t_lfa1 internal table
PERFORM f_select_lfa1.
*Selection of data from LIPS table into t_lips internal table
PERFORM f_select_lips.
del begin CR1591
Don't display list screen when no data exists
*END-OF-SELECTION.
del end CR1591
*lines = sy-linno - 1.
*Collection of data into the final display internal table t_Display
PERFORM f_collect_final.
*Display the contents of t_display as a simple List
PERFORM f_list_display.
AT USER-COMMAND.
PERFORM f_select_layout.
INCLUDE zjpmipu315.
INCLUDE zjpmipu316.
*& Form f_check_MATNR_in_plant
This Routine is to check if the the selected material code is
available in the plant 'JP01'.
FORM f_check_matnr_in_plant.
DATA: l_matnr LIKE mara-matnr.
SELECT matnr UP TO 1 ROWS FROM marc
INTO l_matnr
WHERE
matnr = p_matnr AND
werks = c_werks.
ENDSELECT.
IF l_matnr IS INITIAL.
MESSAGE e000 WITH
'The material is not available in '(t02) c_werks 'plant'(t20).
ENDIF.
ENDFORM. " f_check_MATNR_in_plant
*& Form f_check_EBELN_in_EKPO
This Routine is to check if the Purchase order number selected
is existing or not and if it exists, check if it is related to
the plant 'JP01'.
FORM f_check_ebeln_in_ekpo.
DATA: l_ebeln LIKE ekpo-ebeln.
SELECT ebeln UP TO 1 ROWS FROM ekpo
INTO l_ebeln
WHERE
ebeln = p_ebeln AND
werks = c_werks.
ENDSELECT.
IF l_ebeln IS INITIAL.
MESSAGE e000 WITH
'PO not available or not related to '(t03) c_werks 'plant'(t21).
ENDIF.
ENDFORM. " f_check_EBELN_in_EKPO
*& Form f_check_matnr_in_ekko
This routine is to check if any PO exist for the selected
Material code.
FORM f_check_matnr_in_ekpo.
DATA: l_matnr LIKE ekpo-matnr.
SELECT matnr UP TO 1 ROWS FROM ekpo
INTO l_matnr
WHERE
matnr = p_matnr.
ENDSELECT.
IF l_matnr IS INITIAL.
MESSAGE e000 WITH
'PO does not exist for the material no'(t04) p_matnr.
ENDIF.
ENDFORM. " f_check_matnr_in_ekpo
*& Form f_check_date_in_eket
This routine is to check if any purchase order exists
with the selected
FORM f_check_date_in_eket.
DATA: l_eindt LIKE eket-eindt.
SELECT eindt UP TO 1 ROWS FROM eket
INTO l_eindt
WHERE
eindt IN s_date.
ENDSELECT.
IF l_eindt IS INITIAL.
MESSAGE e000 WITH
'No PO exist with the selected delivery date '(t05).
ENDIF.
ENDFORM. " f_check_date_in_eket
*& Form f_check_werks_in_ekpo
This Routine is to check if the selected purchase order
is associated with the plant JP01
FORM f_check_werks_in_ekpo.
DATA: l_ebeln LIKE ekpo-ebeln.
SELECT ebeln UP TO 1 ROWS FROM ekpo
INTO l_ebeln
WHERE
werks = c_werks.
ENDSELECT.
IF l_ebeln IS INITIAL.
MESSAGE e000 WITH
'The selected P0 is not relevant to '(t06) c_werks 'plant'(t22).
ENDIF.
ENDFORM. " f_check_werks_in_ekpo
*& Form f_select_eket
Routine to collect data from EKET, EKPO, MAKT, EKKO tables
using inner join and store the data into internal table
t_PURC. The data selection is based on the selection screen's
input.
FORM f_select_eket.
IF ( NOT s_date-low IS INITIAL ) AND
( p_matnr IS INITIAL ) AND
( p_ebeln IS INITIAL ).
SELECT
eket~ebeln
eket~ebelp
eket~eindt
eket~menge
eket~charg
ekpo~matnr
ekpo~werks
ekpo~meins
ekko~lifnr
INTO TABLE t_purc
FROM
( ( eket INNER JOIN ekko ON
eketebeln = ekkoebeln ) INNER JOIN ekpo ON
eketebelp = ekpoebelp AND
ekpoebeln = ekkoebeln )
WHERE
eket~eindt IN s_date AND
ekpo~werks = c_werks AND
ekpo~elikz NE c_x AND
ekko~bstyp EQ c_f AND
ekko~bsart NE c_zar.
ELSEIF ( NOT s_date-low IS INITIAL ) AND
( NOT p_matnr IS INITIAL ) AND
( p_ebeln IS INITIAL ).
SELECT
eket~ebeln
eket~ebelp
eket~eindt
eket~menge
eket~charg
ekpo~matnr
ekpo~werks
ekpo~meins
ekko~lifnr
INTO TABLE t_purc
FROM
( ( eket INNER JOIN ekko ON
eketebeln = ekkoebeln ) INNER JOIN ekpo ON
eketebelp = ekpoebelp AND
ekpoebeln = ekkoebeln )
WHERE
eket~eindt IN s_date AND
ekpo~matnr = p_matnr AND
ekpo~werks = c_werks AND
ekpo~elikz NE c_x AND
ekko~bstyp EQ c_f AND
ekko~bsart NE c_zar.
ELSEIF ( NOT s_date-low IS INITIAL ) AND
( NOT p_matnr IS INITIAL ) AND
( NOT p_ebeln IS INITIAL ).
SELECT
eket~ebeln
eket~ebelp
eket~eindt
eket~menge
eket~charg
ekpo~matnr
ekpo~werks
ekpo~meins
ekko~lifnr
INTO TABLE t_purc
FROM
( ( eket INNER JOIN ekko ON
eketebeln = ekkoebeln ) INNER JOIN ekpo ON
eketebelp = ekpoebelp AND
ekpoebeln = ekkoebeln )
WHERE
eket~eindt IN s_date AND
ekpo~matnr = p_matnr AND
ekpo~ebeln = p_ebeln AND
ekpo~werks = c_werks AND
ekpo~elikz NE c_x AND
ekko~bstyp EQ c_f AND
ekko~bsart NE c_zar.
ELSEIF ( s_date-low IS INITIAL ) AND
( p_matnr IS INITIAL ) AND
( NOT p_ebeln IS INITIAL ).
SELECT
eket~ebeln
eket~ebelp
eket~eindt
eket~menge
eket~charg
ekpo~matnr
ekpo~werks
ekpo~meins
ekko~lifnr
INTO TABLE t_purc
FROM
( ( eket INNER JOIN ekko ON
eketebeln = ekkoebeln ) INNER JOIN ekpo ON
eketebelp = ekpoebelp AND
ekpoebeln = ekkoebeln )
WHERE
ekpo~ebeln = p_ebeln AND
ekpo~werks = c_werks AND
ekpo~elikz NE c_x AND
ekko~bstyp EQ c_f AND
ekko~bsart NE c_zar.
ELSEIF ( NOT s_date-low IS INITIAL ) AND
( p_matnr IS INITIAL ) AND
( NOT p_ebeln IS INITIAL ).
SELECT
eket~ebeln
eket~ebelp
eket~eindt
eket~menge
eket~charg
ekpo~matnr
ekpo~werks
ekpo~meins
ekko~lifnr
INTO TABLE t_purc
FROM
( ( eket INNER JOIN ekko ON
eketebeln = ekkoebeln ) INNER JOIN ekpo ON
eketebelp = ekpoebelp AND
ekpoebeln = ekkoebeln )
WHERE
eket~eindt IN s_date AND
ekpo~ebeln = p_ebeln AND
ekpo~werks = c_werks AND
ekpo~elikz NE c_x AND
ekko~bstyp EQ c_f AND
ekko~bsart NE c_zar.
ENDIF.
IF sy-subrc <> 0.
MESSAGE s000 WITH 'Data not found'(t07).
LEAVE LIST-PROCESSING.
ELSE.
SORT t_purc.
ENDIF.
ENDFORM. " f_select_eket
*& Form f_select_makt
Routine to select the material description for all the
materials present in T_purc table
FORM f_select_makt.
DATA: l_t_makt(4) TYPE c VALUE 'MAKT'.
SELECT
matnr
maktx
FROM
makt
INTO TABLE t_makt
FOR ALL ENTRIES IN t_purc
WHERE
matnr = t_purc-matnr AND
spras = c_spras.
IF sy-subrc <> 0.
MESSAGE s000 WITH
'Relevant data not found in'(t09) l_t_makt 'table'(t23).
ELSE.
SORT t_makt.
ENDIF.
ENDFORM. " f_select_makt
*& Form f_move_eket
Routine to join data in T_PURC and T_MAKT tables into
internal table T_MAKT.
FORM f_move_eket.
LOOP AT t_purc.
t_eket-ebeln = t_purc-ebeln.
t_eket-ebelp = t_purc-ebelp.
t_eket-eindt = t_purc-eindt.
t_eket-menge = t_purc-menge.
t_eket-charg = t_purc-charg.
t_eket-matnr = t_purc-matnr.
t_eket-werks = t_purc-werks.
t_eket-meins = t_purc-meins.
t_eket-lifnr = t_purc-lifnr.
READ TABLE t_makt WITH KEY matnr = t_purc-matnr
BINARY SEARCH.
IF sy-subrc = 0.
t_eket-maktx = t_makt-maktx.
ENDIF.
APPEND t_eket.
CLEAR t_eket.
ENDLOOP.
ENDFORM. " f_move_eket
*& Form f_select_ekes
Routine to select EKES data for all corresponding entries
of T_EKET.
FORM f_select_ekes.
DATA: l_tabix TYPE i.
IF NOT s_date IS INITIAL.
SELECT
ebeln
ebelp
etens
eindt
menge
INTO TABLE t_ekes
FROM
ekes
WHERE
eindt IN s_date.
ELSE.
DESCRIBE TABLE t_purc LINES l_tabix.
IF l_tabix GT 0.
SELECT
ebeln
ebelp
etens
eindt
menge
dabmg
vbeln
vbelp
FROM
ekes
INTO TABLE t_ekes
FOR ALL ENTRIES IN t_eket
FOR ALL ENTRIES IN t_purc
WHERE
ebeln = t_purc-ebeln AND
ebelp = t_purc-ebelp AND
eindt IN s_date.
AND ebeln eq p_ebeln.
and matnr in p_matnr.
ENDIF.
CLEAR l_tabix.
IF NOT s_date IS INITIAL AND NOT p_ebeln IS INITIAL.
SELECT
ekes~ebeln
ekes~ebelp
ekes~etens
ekes~eindt
ekes~menge
ekes~dabmg
APPENDING TABLE t_ekes
FROM ekes
WHERE
eindt IN s_date AND
ebeln EQ p_ebeln AND
ebtyp EQ c_la.
ELSEIF NOT s_date IS INITIAL AND p_ebeln IS INITIAL.
SELECT
ekes~ebeln
ekes~ebelp
ekes~etens
ekes~eindt
ekes~menge
ekes~dabmg
APPENDING TABLE t_ekes
FROM ekes
WHERE
eindt IN s_date AND
ebeln EQ p_ebeln AND
ebtyp EQ c_la.
ELSEIF s_date IS INITIAL AND NOT p_ebeln IS INITIAL.
SELECT
ekes~ebeln
ekes~ebelp
ekes~etens
ekes~eindt
ekes~menge
ekes~dabmg
APPENDING TABLE t_ekes
FROM ekes
WHERE
eindt IN s_date AND
ebeln EQ p_ebeln AND
ebtyp EQ c_la.
ENDIF.
IF sy-subrc = 0.
SORT t_ekes.
ENDIF.
IF NOT t_ekes[] IS INITIAL.
t_ekes_temp[] = t_ekes[].
SORT t_ekes_temp BY ebeln ebelp.
DELETE ADJACENT DUPLICATES FROM t_ekes_temp COMPARING ebeln ebelp.
LOOP AT t_ekes_temp.
READ TABLE t_purc WITH KEY ebeln = t_ekes_temp-ebeln
ebelp = t_ekes_temp-ebelp.
IF sy-subrc NE 0.
CLEAR t_purc.
SELECT SINGLE
eket~ebeln
eket~ebelp
eket~eindt
eket~menge
eket~charg
ekpo~matnr
ekpo~werks
ekpo~meins
ekko~lifnr
INTO CORRESPONDING FIELDS OF t_purc
FROM
( ( eket INNER JOIN ekko ON
eketebeln = ekkoebeln ) INNER JOIN ekpo ON
eketebelp = ekpoebelp AND
ekpoebeln = ekkoebeln )
WHERE
eket~ebeln = t_ekes_temp-ebeln
AND eket~ebelp = t_ekes_temp-ebelp
AND ekpo~elikz NE c_x
AND ekko~bstyp EQ c_f
AND ekko~bsart NE c_zar.
IF sy-subrc EQ 0.
APPEND t_purc.
CLEAR t_purc.
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.
REFRESH: t_ekes_temp, t_ekes.
CLEAR: t_ekes_temp, t_ekes.
Once the header is filled up get the details from EKES
SELECT ebeln ebelp etens eindt menge dabmg vbeln vbelp
INTO TABLE t_ekes
FROM ekes
FOR ALL ENTRIES IN t_purc
WHERE ebeln EQ t_purc-ebeln.
Mark the entries as 'X' which falls in the date range
LOOP AT t_ekes.
IF t_ekes-eindt IN s_date.
t_ekes-mark = 'X'.
MODIFY t_ekes INDEX sy-tabix TRANSPORTING mark.
ENDIF.
ENDLOOP.
SORT t_ekes BY ebeln ebelp ASCENDING mark DESCENDING.
Delete the entries from eket if no entries in EKES falls in the period
LOOP AT t_purc.
l_tabix = sy-tabix.
READ TABLE t_ekes WITH KEY ebeln = t_purc-ebeln
ebelp = t_purc-ebelp.
IF sy-subrc EQ 0.
IF t_ekes-mark NE 'X'.
DELETE t_purc INDEX l_tabix.
ENDIF.
ENDIF.
ENDLOOP.
delete the entries from EKES which do not fall in the specified period
DELETE t_ekes WHERE mark NE 'X'.
ENDFORM. " f_select_ekes
*& Form f_update_eket
Routine to substitute relevant t_eket entries with that of
t_ekes entries.It does not modify the remaining entries for
for which the corresponding values in t_ekes doesnot exist.
FORM f_update_eket.
DATA: BEGIN OF lt_temp_eket OCCURS 0,
ebeln LIKE eket-ebeln, "Purchasing Document Number
ebelp LIKE eket-ebelp, "Item Number of Purchasing Document
eindt LIKE eket-eindt, "Item delivery date
menge LIKE eket-menge, "Scheduled quantity
dabmg LIKE ekes-dabmg, " Delivered quantity
matnr LIKE ekpo-matnr, "Material code
maktx LIKE makt-maktx, "Material Description-- jp check
etens LIKE ekes-etens, "Sequence Number
meins LIKE ekpo-meins, "Unit of measure
lifnr LIKE ekko-lifnr, "Vendor number
charg LIKE eket-charg, " Batch number Added by PD 08/08/03
vbeln LIKE ekes-vbeln,
vbelp LIKE ekes-vbelp,
END OF lt_temp_eket,
l_menge LIKE ekes-menge.
LOOP AT t_eket.
LOOP AT t_ekes WHERE ebeln = t_eket-ebeln
AND ebelp = t_eket-ebelp.
Added by PD 08/08/03
MOVE t_eket-charg TO lt_temp_eket-charg.
addition ends
MOVE t_eket-ebeln TO lt_temp_eket-ebeln.
MOVE t_eket-ebelp TO lt_temp_eket-ebelp.
MOVE t_eket-meins TO lt_temp_eket-meins.
CLEAR l_menge.
l_menge = t_ekes-menge - t_ekes-dabmg.
IF l_menge LE 0.
CONTINUE.
ELSE.
MOVE l_menge TO lt_temp_eket-menge.
ENDIF.
MOVE t_ekes-eindt TO lt_temp_eket-eindt.
MOVE t_ekes-etens TO lt_temp_eket-etens.
MOVE t_eket-lifnr TO lt_temp_eket-lifnr.
MOVE t_eket-maktx TO lt_temp_eket-maktx.
MOVE t_eket-matnr TO lt_temp_eket-matnr.
MOVE t_ekes-vbeln TO lt_temp_eket-vbeln.
MOVE t_ekes-vbelp TO lt_temp_eket-vbelp.
APPEND lt_temp_eket.
CLEAR lt_temp_eket.
CLEAR t_ekes.
ENDLOOP.
IF sy-subrc NE 0.
Added by PD 08/08/03
MOVE t_eket-charg TO lt_temp_eket-charg.
addition ends
MOVE t_eket-ebelnDear
Problem No 1 : we are working in a process industries with three plants each of them have three order type. we have define MRP group in "OPPR" then assign each MRP group to Orde types in "OPPE". Now the problem is whn i convert plan order in process order for any material systme automaticaly pick the order type PIi01.
Answer :
1.Please check the OPPR -Plant and MRP group -Select Order Type Button -Check what Order Type you have assinged here ( PI01( May be the default Process Order Type )
2.If you are maintaing MRP group ( 0001 or 0002) , did you asisng the same in MRP1 view ?? because
3.Did you maintain the similar Order type in OPKP -Define Production Scheduling Profile ? -This has highest priority .
4.Did you maintain correct order type in OPJH-Maintain Order Type ??
Refer the expert comments on the same issue : Strategy group to define production order type
Problem No 2: 2nd Problem is system system is not creating plan order for prrevios dates. say i enter PIR for month of november from first november to 30th november and run MRP on 29th the sytem create plan order on 30th of november with exception message 30.
Answer : You can plan the order in back dated , if you maitain Satrt date in the Past optiuon in OPU3/OPU5-Define Scheduling parameters .Goto OPU3 -Select the Order Type -Double click -Maintain 90-60 days in the Start Date in the past in Scheduling Control and Details scheduling tab .
Hope it helps
regards
JH
Maybe you are looking for
-
How can I print sheet titles from Numbers?
how can I print sheet titles from Numbers?
-
I set my preferences to '''show all tabs and windows from last session''' and un-checked the box for '''don't load tabs until selected''' but every time I turn off fire fox and power down my Mac all my app tabs disappear.
-
Forgetting Weight in Pedometer every time I sync
Every time I finished syncing with my iTunes, my iPod always forgot my weight in Settings. I have to go back to Settings to set it again. For example, the original setting is 56.5 Kg. It turns to lbs after it synced. Maybe it converted from kg to lbs
-
Using RRW3_WEBRFC to insert BW query template into BSP: chart not visible
Hi people, I've done a BSP page which calls a BW query template throught RRW3_WEBRFC function and inserts its code in the BSP. I've used the example code BW web reporting inside a BSP page. and all is OK but the charts. Charts are not displayed. I ch
-
Every day, our inbound queue is flooded with thousands of entries from R3AD_CLASS queue. The Status is SYSFAIL, and the entries keep coming. I'm not running anything right now that I know of and I only expect these queues when I replicate data from R