Plant Creation Date
Hi Experts,
How can we know the plant creation date of one of our plant created nearly 6-8 months back.
Regards
GR
Hello
Try table DBTABLOG with:
tabname = 'T001W'
logkey = concatenate client and plant (like '333ABC' - 333 - client and ABC - plant)
optype = 'I' (insert)
You will have DBTABLOG-LOGDATE (date of creation) and DBTABLOG-LOGTIME (time of creation)
Similar Messages
-
Hi,
Can anyone tel me the table name for Plant Creation date .?
I searched in SDN but DBLOGTAB in my case has ZERO entries .Is thr any other way ?Hello,
So i hope you get the reason why your are not getting the table changes in DBTABLOG
You should take help of the basis team for doing this. PLease go through the SAP documentation for details:
[http://help.sap.com/saphelp_nw04/helpdata/en/7e/c81ec852c511d182c50000e829fbfe/content.htm|http://help.sap.com/saphelp_nw04/helpdata/en/7e/c81ec852c511d182c50000e829fbfe/content.htm]
[http://help.sap.com/saphelp_nw2004s/helpdata/EN/32/a479f0e083fc4386e66380e932497e/content.htm|http://help.sap.com/saphelp_nw2004s/helpdata/EN/32/a479f0e083fc4386e66380e932497e/content.htm]
BR,
Suhas -
Material creation date for perticular plant
Hello Experts,
I have four plant have a same material,so i want to see the material creation date by plantwise.Please suggest me where can i see the material creation date by plantwise? Bcz. I want to develop report for this.
Thanks & Regards,
VinayHi,
Go to T.Code: MM60,Then enter your required plant and execute.
Now you can see the material with created date or last change date and who created.
If helpful then reward.
Regards,
Biju K
Message was edited by:
Bijay Kumar Barik -
Material Creation date by plant
Hello all,
In several of our report I need to enter the creation date of the material. My problem is that the creation date of material is a global information and sits in MARA. The users run the report by plant and therefore they are interested to know what was the creation date of the material for a specific plant and not in general. Where can I find this information? How can I know the date that the material was extended to a specific plant?
please, I need your help.
Thank you,
LiatDear Liat,
Plant Data for Material is stored in table MARC. Not sure, if date on which material has been extended to a particular plant will be stored in it.
If you cannot get the date from MARC, you will have to implement a proper BAdi/Enhancement so that you can store date on which material is extended to a particular plant for the combination of Material, Plant. You can fetch the same to be displayed in the reports.
You may also be interested in below transactions:
MM50 List Extendable Materials
MM60 Materials List
Regards,
Naveen. -
Finding Plant Creation and Updation Date
Hi all,
I just want to find out if it is possible to find out Plant Creation and Updation Date using ABAP statements. Does it get stored in CHDHR or CDPOS and if yes, then what is the object Key.
ThanksCheck Report RSVTPROT with table name T001W for Plant changes. I do not think it updated CDHDR.
You can SUBMIT this report and get back the list in your custom program.
How to get list back in your custom program refer
http://scn.sap.com/thread/3147016 -
Delivery Creation Date under Shipping Tab in Purchase Order
Hi All,
When my client creates a Purchase Order with 5 line items, for 3 itmes he can create Delivery ( with delivery date of 25/03/2010) however for line itme 40 and 50 it gives error while creating delivery ( 0 units available of that material)
Stock exist in delivering plant as checked in MMBE.
On checking the PO, the difference i could find between line items 10.20.30 (which can be delivered) and line item 40, 50 (which cant be delivered) is that under Shipping tab for item 10,20 and 30 Delivery Creation Date is Blank. However for item 40 and 50 Delivery creation date is maintained same as delivery date i.e. 25/3/2010.
In VL10B we have already tried inputting Delivery creation date as 25/03/2010 and then executing after supplying the PO number but it still gave the same error messgae.
Kindly guide as it is stopping Business. A speedy reply will be highly appreciated.
Thanks in advance.
BR,
AnshulRe: Only 0 KG of material available
Kindly check above mentioned thread. -
Delivery creation date under shipping tab in STO
Dear Experts,
please explain me how the Delivery creation date is calculated IN STO order, and the same date is carried to the MRP date of Supplying plant in MD04.
thanks
SatyaPlease check these answered links:
Delivery Creation date in STO
Re: Delivery dates in STO
STO Delivery date
Edited by: Afshad Irani on Apr 29, 2010 10:04 AM -
Incorrect delivery creation date in stock transport order
Hi,
I've checked SAP notes and forums but no answers to this one....hope you can help.
I have 2 plants, in separate company codes. One orders from the other using a full inter-company process.
The issue is, when i raise a PO the delivery date (shipping tab) is updated correctly, using the agreed lead time (planned delivery days)
However, the Delivery Creation Date is usually updated with 'todays' date. It's as though the planned delivery days on the material master or PIR is being interpreted as a transit time between the plants.
This has 2 undesirable effects:
1. The supplying plant has no notice, requirement date is NOW
2. Delivery creation batch jobs create deliveries which aren't really due yet
I really need the Delivery creation date to be a true material availability date ie the date the goods are required to be available in the supplying plant. For us this would be 3 days (transit time between plants) before the delivery date.
Any help greatly appreciated.
Regards
GuyGuy,
true lead time.
is a bit ambiguous. The system does exactly what you tell it to do. 'True Lead time" is not defined in SAP. What do you mean by this term? Are you talking about "Total replenishment lead time" in the material master?
Anyhow, you are telling me you want the delivery creation date to be "three days prior to Delivery date". No problem, set PDT to 3 days. So, if you today created an STO with a delivery date of July 30, and the PDT was 3 days, the delivery creation date would be July 27. If you also want cushion, then today convert the STPRs with a delivery date of July 30. Don't wait until July 27 to convert these PRs.
How are you creating STOs today? You mentioned delivery dates being populated by the system. How? What transaction/what program? If your current process is to automatically convert all existing STPRs into STOs, then you probably need to consider adding some time to Purchase Req processing time. OMEW in config.
Rgds,
DB49 -
Purchase order delivery date is same as creation date
Hi,
For one of the plant.when PO is created manually delivery date is taking same as creation date.why it so.
Can any one provide the reason.
There are no Personal settings in Purchase order
for the material the data maintained as follows :
MRP2 :
Planned delivery time is 24 days
GR processing time is 5 days
Purchase info record :
Planned delivery time is 24 days
SPRO-Plant parameters
Purchase Processing time 1 day
Regards,
somiraghuHi ,
System calculate the delivery date by the sumation of planned delivery time with your creation date. In the material master the planned delivery time for that plant may be zero ,.tht may be the region behind the system is showing the creation date as the delivery date.
Pls check your Material in Material Master for that plant...
Regards -
Very urgent : shipping point and delivery creation date
Hi :
I have a custom table with fields :
belnr, posnr, btyp, aufnr, ebeln, ebelp, livbeln, liposnr,matnr,wadat,kunnr,werks,bmeinh,getri,inaktiv,wabukz,erdat,aedat,loekz.
Custom Transaction with fields :
vbeln (field name belnr) , aufnr, delivery vbeln ( field name livbeln ),werks, mat .avail.dat ( mbdat ), transport.plan date(tddat),
matnr, and sales order item (posnr).
I have to select sales order , item from custom table based on plant (werks) shipping point , and delivery creation date.
how can i relate shipping point and delivery creation date to my query.
For delivery creation date, it should be selected based on current date+-2 and should choose MBDAT OR TDDAT which ever is earlier based on current date.
I would appreciate if anyone can give me som idea and full points r rewarded.
Thx.
RagHi,
Try this:
select a1belnr a1posnr vbep~etenr into corresponding fields of table itab from a1 inner join vbap
on a1belnr = vbapvbeln
inner join vbep
<b>on vbapvbeln = vbepvbeln and vbapposnr = vbepposnr</b>
where a1~werks = p_werks
AND vbap~vstel = p_vstel
AND vbep~edatu = p_edatu
AND (vbep~mbdat <= p_edatu OR
vbep~tddat <= p_edatu ).
regards,
Anji -
Shipping point , delivery creation date
Hi :
I have a custom table with fields :
belnr, posnr, btyp, aufnr, ebeln, ebelp, livbeln, liposnr,matnr,wadat,kunnr,werks,bmeinh,getri,inaktiv,wabukz,erdat,aedat,loekz.
Custom Transaction with fields :
vbeln (field name belnr) , aufnr, delivery vbeln ( field name livbeln ),werks, mat .avail.dat ( mbdat ), transport.plan date(tddat),
matnr, and sales order item (posnr).
I have to select sales order , item from custom table based on plant (werks) shipping point , and delivery creation date.
how can i relate shipping point and delivery creation date to my query.
For delivery creation date, it should be selected based on current date+-2 and should choose MBDAT OR TDDAT which ever is earlier based on current date.
I would appreciate if anyone can give me som idea and full points r rewarded.
Thx.
RagHi Pankaj,
Please try to use BAPI 'BAPI_DELIVERYPROCESSING_EXEC' for creating delivery form sales order , you can pass value and create delivery.
you can refer below code, it may be helpfull for you to create delivery.
DATA: BEGIN OF t_vbap OCCURS 0,
vbeln LIKE vbap-vbeln,
posnr LIKE vbap-posnr,
zmeng LIKE vbap-kwmeng,
matnr LIKE vbap-matnr,
werks LIKE vbap-werks,
END OF t_vbap.
DATA: t_request TYPE STANDARD TABLE OF bapideliciousrequest
WITH HEADER LINE.
DATA: t_created TYPE STANDARD TABLE OF bapideliciouscreateditems
WITH HEADER LINE.
DATA: t_return TYPE STANDARD TABLE OF bapiret2 WITH HEADER LINE.
SELECT vbeln posnr zmeng matnr werks
INTO TABLE t_vbap
FROM vbap
WHERE vbeln = v_vbeln.
LOOP AT t_vbap.
t_request-document_numb = t_vbap-vbeln.
t_request-document_item = t_vbap-posnr.
t_request-quantity_sales_uom = t_vbap-zmeng.
t_request-quantity_base__uom = t_vbap-zmeng.
t_request-id = 1.
t_request-document_type = 'A'.
t_request-delivery_date = sy-datum.
t_request-material = t_vbap-matnr.
t_request-plant = t_vbap-werks.
t_request-date = sy-datum.
t_request-goods_issue_date = sy-datum.
t_request-goods_issue_time = sy-uzeit.
APPEND t_request.
ENDLOOP.
CALL FUNCTION 'BAPI_DELIVERYPROCESSING_EXEC'
TABLES
request = t_request
createditems = t_created
return = t_return.
READ TABLE t_return WITH KEY type = 'E'.
IF sy-subrc = 0.
MESSAGE e208(00) WITH 'Delivery creation error'.
ENDIF.
COMMIT WORK.
Regards,
Prasenjit -
Shipping point and delivery creation date
Hi :
im selecting sales orders , items and schedule line
from a custom table based on plant, shipping point and delivery creation date.
Is there any relation between Schedule lines and delivery creation date.
For delivery creation date d_date = SY-DATUM, and should select Mat Avail dt MBDAT or Trans. planning dt TDDAT which ever comes earlier.
vbep-edatu = itab-d_date.
select a1belnr a1posnr vbep~etenr into corresponding fields of table itab from a1 inner join vbap
on a1belnr = vbapvbeln
inner join vbep on a1posnr = vbepposnr
where a1~werks = p_werks
AND vbap~vstel = p_vstel
AND vbep~edatu = p_edatu
AND (vbep~mbdat <= p_edatu OR
vbep~tddat <= p_edatu ).
can anyone help me with this select statement.
Thanks.
RaghuHi,
Try this:
select a1belnr a1posnr vbep~etenr into corresponding fields of table itab from a1 inner join vbap
on a1belnr = vbapvbeln
inner join vbep
<b>on vbapvbeln = vbepvbeln and vbapposnr = vbepposnr</b>
where a1~werks = p_werks
AND vbap~vstel = p_vstel
AND vbep~edatu = p_edatu
AND (vbep~mbdat <= p_edatu OR
vbep~tddat <= p_edatu ).
regards,
Anji -
Converting Delivery Creation Date/Time into the Local Date/Time
Hi
I have two fields like 'Delivery Creation Date' and 'Delivery Creation Time' in ECC system . My user wants the Delivery Creation Date / Delivery Creation Time in Local time of Plants .
For example :
Delivery Plant DelivCreationDate DelivCreationTime DelivCreationDate(Local) DelivCreationTime(Local)
312456 1650 11/2/2007 4:30 11/2/2007 3:30
Here the Plant 1650 is in Mexico . The above delivery is created in Canada in ECC system according to the candain time .
But user wants to convert the Candain Delivery Creation Date and Time into the Local Date/Time of specific plant .
So we need to convert the Candain Delivery Creation Date and Time into Mexico timings .
How can it is possible this one and user wants to automate this process .
Please let me know
MubeenDATA :
timestamp like TZONREF-TSTAMPS,
time like sy-uzeit,
date like sy-datum.
The following function module is used to convert the
time and date into GMT timestamp
CALL FUNCTION 'IB_CONVERT_INTO_TIMESTAMP'
EXPORTING
i_datlo = <source_fields>-delivery_date
i_timlo = <source_fields>-delivery_time
I_TZONE = CAD'
IMPORTING
E_TIMESTAMP = timestamp.
The following function module is used to convert the
above obtained timestamp to MEX timezone date and time.
CALL FUNCTION 'IB_CONVERT_FROM_TIMESTAMP'
EXPORTING
i_timestamp = timestamp
I_TZONE = MEX
IMPORTING
E_DATLO = date
E_TIMLO = time.
CAD and MEX are variables i have used...
the challenge is to find the canadian and mexican time zone....CAD and MEX.
which you can get by performing a lookup in table T001W and passing country as parameter. -
Bapi for creation of delivery by using SO,shipping point,delivery creation date
Hi experts,
I am looking for bapi that takes sales order,shipping point and delivery creation date and generates delivery.
I have tried with bapi GN_DELIVERY_CREATE but i am not able to understand whether this bapi is used for inbound or outbound deliveries.If this bapi is ok then what are the mandatory fields for this bapi.
Regards,
Pankaj JainHi Pankaj,
Please try to use BAPI 'BAPI_DELIVERYPROCESSING_EXEC' for creating delivery form sales order , you can pass value and create delivery.
you can refer below code, it may be helpfull for you to create delivery.
DATA: BEGIN OF t_vbap OCCURS 0,
vbeln LIKE vbap-vbeln,
posnr LIKE vbap-posnr,
zmeng LIKE vbap-kwmeng,
matnr LIKE vbap-matnr,
werks LIKE vbap-werks,
END OF t_vbap.
DATA: t_request TYPE STANDARD TABLE OF bapideliciousrequest
WITH HEADER LINE.
DATA: t_created TYPE STANDARD TABLE OF bapideliciouscreateditems
WITH HEADER LINE.
DATA: t_return TYPE STANDARD TABLE OF bapiret2 WITH HEADER LINE.
SELECT vbeln posnr zmeng matnr werks
INTO TABLE t_vbap
FROM vbap
WHERE vbeln = v_vbeln.
LOOP AT t_vbap.
t_request-document_numb = t_vbap-vbeln.
t_request-document_item = t_vbap-posnr.
t_request-quantity_sales_uom = t_vbap-zmeng.
t_request-quantity_base__uom = t_vbap-zmeng.
t_request-id = 1.
t_request-document_type = 'A'.
t_request-delivery_date = sy-datum.
t_request-material = t_vbap-matnr.
t_request-plant = t_vbap-werks.
t_request-date = sy-datum.
t_request-goods_issue_date = sy-datum.
t_request-goods_issue_time = sy-uzeit.
APPEND t_request.
ENDLOOP.
CALL FUNCTION 'BAPI_DELIVERYPROCESSING_EXEC'
TABLES
request = t_request
createditems = t_created
return = t_return.
READ TABLE t_return WITH KEY type = 'E'.
IF sy-subrc = 0.
MESSAGE e208(00) WITH 'Delivery creation error'.
ENDIF.
COMMIT WORK.
Regards,
Prasenjit -
Want to get placed images Dimension and Creation Date in Catalog
Below is the script which is free with CS4. Is there anybody who can modify this script in a way which provide the creation date and dimension of the images in image catalog.
//ImageCatalog.jsx
//An InDesign C4 JavaScript
@@@BUILDINFO@@@ "ImageCatalog.jsx" 2.0.0 5-December-2007
//Creates an image catalog from the graphic files in a selected folder.
//Each file can be labeled with the file name, and the labels are placed on
//a separate layer and formatted using a paragraph style ("label") you can
//modify to change the appearance of the labels.
//For more information on InDesign scripting, go to http://www.adobe.com/products/indesign/scripting/index.html
//Or visit the InDesign Scripting User to User forum at http://www.adobeforums.com .
//The myExtensions array contains the extensions of the graphic file types you want
//to include in the catalog. You can remove extensions from or add extensions to this list.
//myExtensions is a global. Mac OS users should also look at the file types in the myFileFilter function.
main();
function main(){
var myFilteredFiles;
//Make certain that user interaction (display of dialogs, etc.) is turned on.
app.scriptPreferences.userInteractionLevel = UserInteractionLevels.interactWithAll;
myExtensions = [".jpg", ".jpeg", ".eps", ".ps", ".pdf", ".tif", ".tiff", ".gif", ".psd", ".ai"]
//Display the folder browser.
var myFolder = Folder.selectDialog("Select the folder containing the images", "");
//Get the path to the folder containing the files you want to place.
if(myFolder != null){
if(File.fs == "Macintosh"){
myFilteredFiles = myMacOSFileFilter(myFolder);
else{
myFilteredFiles = myWinOSFileFilter(myFolder);
if(myFilteredFiles.length != 0){
myDisplayDialog(myFilteredFiles, myFolder);
alert("Done!");
//Windows version of the file filter.
function myWinOSFileFilter(myFolder){
var myFiles = new Array;
var myFilteredFiles = new Array;
for(myExtensionCounter = 0; myExtensionCounter < myExtensions.length; myExtensionCounter++){
myExtension = myExtensions[myExtensionCounter];
myFiles = myFolder.getFiles("*"+ myExtension);
if(myFiles.length != 0){
for(var myFileCounter = 0; myFileCounter < myFiles.length; myFileCounter++){
myFilteredFiles.push(myFiles[myFileCounter]);
return myFilteredFiles;
function myMacOSFileFilter(myFolder){
var myFilteredFiles = myFolder.getFiles(myFileFilter);
return myFilteredFiles;
//Mac OS version of file filter
//Have to provide a separate version because not all Mac OS users use file extensions
//and/or file extensions are sometimes hidden by the Finder.
function myFileFilter(myFile){
var myFileType = myFile.type;
switch (myFileType){
case "JPEG":
case "EPSF":
case "PICT":
case "TIFF":
case "8BPS":
case "GIFf":
case "PDF ":
return true;
break;
default:
for(var myCounter = 0; myCounter<myExtensions.length; myCounter++){
var myExtension = myExtensions[myCounter];
if(myFile.name.indexOf(myExtension)>-1){
return true;
break;
return false;
function myDisplayDialog(myFiles, myFolder){
var myLabelWidth = 112;
var myStyleNames = myGetParagraphStyleNames(app);
var myLayerNames = ["Layer 1", "Labels"];
var myDialog = app.dialogs.add({name:"Image Catalog"});
with(myDialog.dialogColumns.add()){
with(dialogRows.add()){
staticTexts.add({staticLabel:"Information:"});
with(borderPanels.add()){
with(dialogColumns.add()){
with(dialogRows.add()){
staticTexts.add({staticLabel:"Source Folder:", minWidth:myLabelWidth});
staticTexts.add({staticLabel:myFolder.path + "/" + myFolder.name});
with(dialogRows.add()){
staticTexts.add({staticLabel:"Number of Images:", minWidth:myLabelWidth});
staticTexts.add({staticLabel:myFiles.length + ""});
with(dialogRows.add()){
staticTexts.add({staticLabel:"Options:"});
with(borderPanels.add()){
with(dialogColumns.add()){
with(dialogRows.add()){
staticTexts.add({staticLabel:"Number of Rows:", minWidth:myLabelWidth});
var myNumberOfRowsField = integerEditboxes.add({editValue:3});
with(dialogRows.add()){
staticTexts.add({staticLabel:"Number of Columns:", minWidth:myLabelWidth});
var myNumberOfColumnsField = integerEditboxes.add({editValue:3});
with(dialogRows.add()){
staticTexts.add({staticLabel:"Horizontal Offset:", minWidth:myLabelWidth});
var myHorizontalOffsetField = measurementEditboxes.add({editValue:12, editUnits:MeasurementUnits.points});
with(dialogRows.add()){
staticTexts.add({staticLabel:"Vertical Offset:", minWidth:myLabelWidth});
var myVerticalOffsetField = measurementEditboxes.add({editValue:24, editUnits:MeasurementUnits.points});
with (dialogRows.add()){
with(dialogColumns.add()){
staticTexts.add({staticLabel:"Fitting:", minWidth:myLabelWidth});
with(dialogColumns.add()){
var myFitProportionalCheckbox = checkboxControls.add({staticLabel:"Proportional", checkedState:true});
var myFitCenterContentCheckbox = checkboxControls.add({staticLabel:"Center Content", checkedState:true});
var myFitFrameToContentCheckbox = checkboxControls.add({staticLabel:"Frame to Content", checkedState:true});
with(dialogRows.add()){
var myRemoveEmptyFramesCheckbox = checkboxControls.add({staticLabel:"Remove Empty Frames:", checkedState:true});
with(dialogRows.add()){
staticTexts.add({staticLabel:""});
var myLabelsGroup = enablingGroups.add({staticLabel:"Labels", checkedState:true});
with (myLabelsGroup){
with(dialogColumns.add()){
//Label type
with(dialogRows.add()){
with(dialogColumns.add()){
staticTexts.add({staticLabel:"Label Type:", minWidth:myLabelWidth});
with(dialogColumns.add()){
var myLabelTypeDropdown = dropdowns.add({stringList:["File name", "File path", "XMP description", "XMP author"], selectedIndex:0});
//Text frame height
with(dialogRows.add()){
with(dialogColumns.add()){
staticTexts.add({staticLabel:"Label Height:", minWidth:myLabelWidth});
with(dialogColumns.add()){
var myLabelHeightField = measurementEditboxes.add({editValue:24, editUnits:MeasurementUnits.points});
//Text frame offset
with(dialogRows.add()){
with(dialogColumns.add()){
staticTexts.add({staticLabel:"Label Offset:", minWidth:myLabelWidth});
with(dialogColumns.add()){
var myLabelOffsetField = measurementEditboxes.add({editValue:0, editUnits:MeasurementUnits.points});
//Style to apply
with(dialogRows.add()){
with(dialogColumns.add()){
staticTexts.add({staticLabel:"Label Style:", minWidth:myLabelWidth});
with(dialogColumns.add()){
var myLabelStyleDropdown = dropdowns.add({stringList:myStyleNames, selectedIndex:0});
//Layer
with(dialogRows.add()){
with(dialogColumns.add()){
staticTexts.add({staticLabel:"Layer:", minWidth:myLabelWidth});
with(dialogColumns.add()){
var myLayerDropdown = dropdowns.add({stringList:myLayerNames, selectedIndex:0});
var myResult = myDialog.show();
if(myResult == true){
var myNumberOfRows = myNumberOfRowsField.editValue;
var myNumberOfColumns = myNumberOfColumnsField.editValue;
var myRemoveEmptyFrames = myRemoveEmptyFramesCheckbox.checkedState;
var myFitProportional = myFitProportionalCheckbox.checkedState;
var myFitCenterContent = myFitCenterContentCheckbox.checkedState;
var myFitFrameToContent = myFitFrameToContentCheckbox.checkedState;
var myHorizontalOffset = myHorizontalOffsetField.editValue;
var myVerticalOffset = myVerticalOffsetField.editValue;
var myMakeLabels = myLabelsGroup.checkedState;
var myLabelType = myLabelTypeDropdown.selectedIndex;
var myLabelHeight = myLabelHeightField.editValue;
var myLabelOffset = myLabelOffsetField.editValue;
var myLabelStyle = myStyleNames[myLabelStyleDropdown.selectedIndex];
var myLayerName = myLayerNames[myLayerDropdown.selectedIndex];
myDialog.destroy();
myMakeImageCatalog(myFiles, myNumberOfRows, myNumberOfColumns, myRemoveEmptyFrames, myFitProportional, myFitCenterContent, myFitFrameToContent, myHorizontalOffset, myVerticalOffset, myMakeLabels, myLabelType, myLabelHeight, myLabelOffset, myLabelStyle, myLayerName);
else{
myDialog.destroy();
function myGetParagraphStyleNames(myDocument){
var myStyleNames = new Array;
var myAddLabelStyle = true;
for(var myCounter = 0; myCounter < myDocument.paragraphStyles.length; myCounter++){
myStyleNames.push(myDocument.paragraphStyles.item(myCounter).name);
if (myDocument.paragraphStyles.item(myCounter).name == "Labels"){
myAddLabelStyle = false;
if(myAddLabelStyle == true){
myStyleNames.push("Labels");
return myStyleNames;
function myMakeImageCatalog(myFiles, myNumberOfRows, myNumberOfColumns, myRemoveEmptyFrames, myFitProportional, myFitCenterContent, myFitFrameToContent, myHorizontalOffset, myVerticalOffset, myMakeLabels, myLabelType, myLabelHeight, myLabelOffset, myLabelStyle, myLayerName){
var myPage, myFile, myCounter, myX1, myY1, myX2, myY2, myRectangle, myLabelStyle, myLabelLayer;
var myParagraphStyle, myError;
var myFramesPerPage = myNumberOfRows * myNumberOfColumns;
var myDocument = app.documents.add();
myDocument.viewPreferences.horizontalMeasurementUnits = MeasurementUnits.points;
myDocument.viewPreferences.verticalMeasurementUnits = MeasurementUnits.points;
var myDocumentPreferences = myDocument.documentPreferences;
var myNumberOfFrames = myFiles.length;
var myNumberOfPages = Math.round(myNumberOfFrames / myFramesPerPage);
if ((myNumberOfPages * myFramesPerPage) < myNumberOfFrames){
myNumberOfPages++;
//If myMakeLabels is true, then add the label style and layer if they do not already exist.
if(myMakeLabels == true){
try{
myLabelLayer = myDocument.layers.item(myLayerName);
//if the layer does not exist, trying to get the layer name will cause an error.
myLabelLayer.name;
catch (myError){
myLabelLayer = myDocument.layers.add({name:myLayerName});
//If the paragraph style does not exist, create it.
try{
myParagraphStyle = myDocument.paragraphStyles.item(myLabelStyle);
myParagraphStyle.name;
catch(myError){
myDocument.paragraphStyles.add({name:myLabelStyle});
myDocumentPreferences.pagesPerDocument = myNumberOfPages;
myDocumentPreferences.facingPages = false;
var myPage = myDocument.pages.item(0);
var myMarginPreferences = myPage.marginPreferences;
var myLeftMargin = myMarginPreferences.left;
var myTopMargin = myMarginPreferences.top;
var myRightMargin = myMarginPreferences.right;
var myBottomMargin = myMarginPreferences.bottom;
var myLiveWidth = (myDocumentPreferences.pageWidth - (myLeftMargin + myRightMargin)) + myHorizontalOffset
var myLiveHeight = myDocumentPreferences.pageHeight - (myTopMargin + myBottomMargin)
var myColumnWidth = myLiveWidth / myNumberOfColumns
var myFrameWidth = myColumnWidth - myHorizontalOffset
var myRowHeight = (myLiveHeight / myNumberOfRows)
var myFrameHeight = myRowHeight - myVerticalOffset
var myPages = myDocument.pages;
// Construct the frames in reverse order. Don't laugh--this will
// save us time later (when we place the graphics).
for (myCounter = myDocument.pages.length-1; myCounter >= 0; myCounter--){
myPage = myPages.item(myCounter);
for (var myRowCounter = myNumberOfRows; myRowCounter >= 1; myRowCounter--){
myY1 = myTopMargin + (myRowHeight * (myRowCounter-1));
myY2 = myY1 + myFrameHeight;
for (var myColumnCounter = myNumberOfColumns; myColumnCounter >= 1; myColumnCounter--){
myX1 = myLeftMargin + (myColumnWidth * (myColumnCounter-1));
myX2 = myX1 + myFrameWidth;
myRectangle = myPage.rectangles.add(myDocument.layers.item(-1), undefined, undefined, {geometricBounds:[myY1, myX1, myY2, myX2], strokeWeight:0, strokeColor:myDocument.swatches.item("None")});
// Because we constructed the frames in reverse order, rectangle 1
// is the first rectangle on page 1, so we can simply iterate through
// the rectangles, placing a file in each one in turn. myFiles = myFolder.Files;
for (myCounter = 0; myCounter < myNumberOfFrames; myCounter++){
myFile = myFiles[myCounter];
myRectangle = myDocument.rectangles.item(myCounter);
myRectangle.place(File(myFile));
myRectangle.label = myFile.fsName.toString();
//Apply fitting options as specified.
if(myFitProportional){
myRectangle.fit(FitOptions.proportionally);
if(myFitCenterContent){
myRectangle.fit(FitOptions.centerContent);
if(myFitFrameToContent){
myRectangle.fit(FitOptions.frameToContent);
//Add the label, if necessary.
if(myMakeLabels == true){
myAddLabel(myRectangle, myLabelType, myLabelHeight, myLabelOffset, myLabelStyle, myLayerName);
if (myRemoveEmptyFrames == 1){
for (var myCounter = myDocument.rectangles.length-1; myCounter >= 0;myCounter--){
if (myDocument.rectangles.item(myCounter).contentType == ContentType.unassigned){
myDocument.rectangles.item(myCounter).remove();
else{
//As soon as you encounter a rectangle with content, exit the loop.
break;
//Function that adds the label.
function myAddLabel(myFrame, myLabelType, myLabelHeight, myLabelOffset, myLabelStyleName, myLayerName){
var myDocument = app.documents.item(0);
var myLabel;
var myLabelStyle = myDocument.paragraphStyles.item(myLabelStyleName);
var myLabelLayer = myDocument.layers.item(myLayerName);
var myLink =myFrame.graphics.item(0).itemLink;
//Label type defines the text that goes in the label.
switch(myLabelType){
//File name
case 0:
myLabel = myLink.name;
break;
//File path
case 1:
myLabel = myLink.filePath;
break;
//XMP description
case 2:
try{
myLabel = myLink.linkXmp.description;
if(myLabel.replace(/^\s*$/gi, "")==""){
throw myError;
catch(myError){
myLabel = "No description available.";
break;
//XMP author
case 3:
try{
myLabel = myLink.linkXmp.author
if(myLabel.replace(/^\s*$/gi, "")==""){
throw myError;
catch(myError){
myLabel = "No author available.";
break;
var myX1 = myFrame.geometricBounds[1];
var myY1 = myFrame.geometricBounds[2] + myLabelOffset;
var myX2 = myFrame.geometricBounds[3];
var myY2 = myY1 + myLabelHeight;
var myTextFrame = myFrame.parent.textFrames.add(myLabelLayer, undefined, undefined,{geometricBounds:[myY1, myX1, myY2, myX2], contents:myLabel});
myTextFrame.textFramePreferences.firstBaselineOffset = FirstBaseline.leadingOffset;
myTextFrame.parentStory.texts.item(0).appliedParagraphStyle = myLabelStyle;"Scripting Forum Conduct
While this forum is a great place to get scripting help, it's also very easy to misuse it. Before using this forum, please read this post!"
Maybe you are looking for
-
Hi, We are applications 12.0.6 with 10.2.0.3.0 database. I'm trying to submit the "PRC: Generate Draft Revenue for a Single Project" through fnd_request.submit_request and is erroring out with "PA: Error - Entered Accrue through date is not within op
-
Unknown error when trying to set up Firefox Sync
I try to set up Firefox Sync but as I fill in my e-mail address on the first line i first get the message "invalide e-mail account" (or similar) but then when I continue to complete it with [email protected] it just says "unknown error". I have tried
-
All I have on my I pod touch is a white screen with multicolored lines going across screen. What do I need to do. I can't use I tunes because it says I have to have passcode and can't get screen to come up. I have already tried holding both keys d
-
Does entity cache cause high heap usage ? better setClearCacheOnCommit ?
Hi all, During peak load (150-200 users) of our production ADF application (10.1.3.3), the heap usage can be reach 3GB, causing JVM very busy doing frequent GC. Is this possibly because the 'by default uncleared' entity cache ? What is the implicatio
-
i konw there have been programs to use swing on j++, but how about on its upgrade, j#? anyone know if there is a way or there is something in the makes or if there is any way to take the javax package and put it into the j# program file any solutions