Slanted rectangle behind text - any chance to automate the process?

Hi there,
I would like to create effect which you can see on this image:
The black and orange rectangles behind the capitals. The source which is pictured above comes from professional studio. They put separate rectangle behind the textframe:
Imagine, that you create a catalog of 500 products. Each product has one black and one color rectangle. There are 20 different color codes for the bottom rectangle (these rectangles vary a bit in length, depending on the size of the text above). I feel putting a square object to the bottom layer like a bit clumsy approach. It is like creating paragraph dividers by Line Tool. Could you recommend some more tidier way for this? I am almost sure, that I will put a thousand of those rectangles to the layout and the client will decide ( a day before print), that "the reversed skew would look more professional"…
The best way for this would be a Paragraph rule, but — what a surprise — no chance to skew the ends.
I tried to create the new stroke preset, but no skew options.
I also skewed the line manually and try to create the Object Style from it. The skew was not inherited by the new Object Style.
Do I really do this manually in the age of spaceflights, cellphones and even electric tea kettles?
Thank you!

Hi all,
Marc Autret has confirmed me his OK to unveil this great code.
AjustementMagique.jsx permits a horizontal "scaling", in particular for tables. It works fine with ID CS4 (a very little bug sometimes). Not tested with CS5.
But ... it does not work under ID CS6, CC and CC 2014!
Marc gives his blessing to the heroes who would wish to do the update! 
Enjoy!
/*      AjustementMagique pour InDesign CS / CS2 -- 18/01/06           */
/*      version 2.1b (FR) -- auteur: Marc Autret                       */
/*      Explications : http://marcautret.free.fr/geek/indd/magicfit/   */
/*      Installation et Utilisation:                                   */
/*      0) !! Pour InDesign CS2 seulement !!                           */
/*         Renommez le present fichier avec l'extension .jsx           */
/*         (afin d'activer les fonctions extend script)                */
/*      1) Placer le present fichier dans le sous-dossier              */
/*         Presets/Scripts/ de l'application InDesign                  */
/*      2) Lancer InDesign, ouvrir un document et selectionner         */
/*         le(s) elements(s) a ajuster: bloc(s), colonnes(s)           */
/*         [a defaut, le script ajuste le conteneur du pt d'insertion] */
/*      3) Executer le script par Fenetre>Scripts>Scripts              */
/*         suivi d'un double-clic sur AjustementMagique.js             */
/*         (ou affecter au script un raccourci-clavier via             */
/*         Edition>Raccourcis-clavier>Zone:"scripts")                  */
/*      4) Un second appel du script sous un delai de 2 secondes       */
/*         optimise si c'est possible l'ajustement (mode "fluide")     */
/*                  Feedbacks : [email protected]                     */
// REGLAGES
var LATENCE = 2; // en secondes (defaut: 2)
var PRECISION = 0.5; // en points (defaut:0.5)
var APP_INT_VERSION = parseInt(app.version);
// UTILITAIRES
/*void*/ function exitMessage(/*exception*/ ex)
alert("Erreur:\n" + ex.toString());
exit();
// METHODES DE LA CLASSE DOCUMENT
/*void*/ Document.prototype.setUnitsTo = function(/*units*/ newUnits)
// units est soit une valeur simple (horiz=vert), soit un array(horizUnits, vertUnits)
var arrUnits = (newUnits.length) ? newUnits : new Array(newUnits,newUnits);
this.viewPreferences.horizontalMeasurementUnits = arrUnits[0];
this.viewPreferences.verticalMeasurementUnits = arrUnits[1];
/*arr2*/ Document.prototype.getUnits = function()
return(Array(
  this.viewPreferences.horizontalMeasurementUnits,
  this.viewPreferences.verticalMeasurementUnits));
/*bool*/ Document.prototype.withinDelay = function()
if (this.label)
  return( (Date.parse(Date())-this.label) <= LATENCE*1000 );
return(false);
/*void*/ Document.prototype.storeTimeStamp = function()
this.label = Date.parse(Date()).toString();
// METHODES GENERIQUES (NIVEAU OBJECT)
/*arr*/ Object.prototype.asObjsToFit = function()
// Retourne le(s) "conteneur(s) ajustable(s)" associe(s) a THIS
// Type de retour: array OU collection
// NULL en cas d'echec
switch(this.constructor.name)
  case "TextFrame" : // textframe -> singleton this
  return(Array(this));
  case "Cell" : // cells -> parent columns
  var r = new Array();
  // !! [CS1] Cell::parentColumn === Cell !!
  // !! [CS2] Cell::parentColumn === Column !!
  // !! [CS2] Cells::lastItem().parentColumn BUG !!
  var c0 = this.cells.firstItem().name.split(":")[0];
  var c1 = this.cells.lastItem().name.split(":")[0];
  for (var i=c0 ; i<=c1; i++)
  r.push(this.parent.columns[i]);
  return(r);
  case "Table" /*CS2*/ : // table -> columns
  return(this.columns);
  case "Group" : // group -> textFrames
  return((this.textFrames.length>0) ? this.textFrames : null);
  case "Text" : // Text ou InsertionPoint
  case "InsertionPoint" : // -> travailler sur le conteneur
  var textContainer = this.getTextContainer();
  return((textContainer) ? textContainer.asObjsToFit() : null);
  default:
  return(null);
/*obj*/ Object.prototype.getTextContainer = function()
// Renvoie le TextFrame ou la cellule (Cell) contenant THIS
// (Text ou InsertionPoint)
// NULL si echec
try { // try...catch because of CS2 behaviour
  if (this.parent.constructor.name == "Cell")
  return(this.parent);
  if (this.parentTextFrames) // pluriel sous CS2
  return(this.parentTextFrames[0]);
  if (this.parentTextFrame) // sing. sous CS1
  return(this.parentTextFrame);
  return(null);
catch(ex) {return(null);}
/*int*/ Object.prototype.computeIncludedObjectsWidth = function()
// Analyse les objets incorpores (tables, PageItems) pour extraire
// la largeur maxi qu'ils occupent
// Le tableau objsNames peut etre etendu pourvu que
// l'objet ajoute fournisse une methode computeWidth()
var objsNames = new Array("pageItems","tables");
var objsWidth = 0;
var w = 0;
for (var j=objsNames.length-1 ; j>=0 ; j--)
  for (var i=this[objsNames[j]].length-1 ; i>=0 ; i--)
  try
  {w = this[objsNames[j]][i].computeWidth({VISIBLE:true});}
  catch(ex)
  {w=0;}
  if (w > objsWidth) objsWidth=w;
return(objsWidth);
/*int*/ Object.prototype.computeWidth = function(/*bool*/ VISIBLE)
// Methode generique pour les composants possedant des Bounds
// VISIBLE true -> largeur EXTERNE
// VISIBLE false -> largeur INTERNE
if (VISIBLE)
  if (this.visibleBounds)
  return(this.visibleBounds[3]-this.visibleBounds[1]);
else
  if (this.geometricBounds)
  return(this.geometricBounds[3]-this.geometricBounds[1]);
return(0);
/*int*/ Table.prototype.computeWidth = function()
// Specialise Object::computeWidth dans le cas d'une Table
return(this.width);
/*arr*/ Object.prototype.createLinesSizesArray = function()
// Renvoie sous forme de tabeau la taille (en cars) des lignes de THIS
// Tableau vide si this.lines==NULL  OU  this.lines.length==0
r = new Array();
if (this.lines)
  for (var i=this.lines.length-1; i>=0 ; i--)
  r.unshift(this.lines[i].characters.length);
return(r);
/*bool*/ Object.prototype.isoceleLines = function(/*arr*/ arrSizes)
// Indique si THIS.lines[i].characters.length == arrSizes[i] pour tout i
if (this.lines.length != arrSizes.length) return(false);
for (var i=arrSizes.length-1 ; i>=0 ; i--)
  if (arrSizes[i] != this.lines[i].characters.length)
  return(false);
return(true);
// METHODES SPECIFIQUES A TEXTFRAME
/*bool*/ TextFrame.prototype.isEmpty = function()
return(this.characters.length==0);
/*bool*/ TextFrame.prototype.isOverflowed = function()
return(this.overflows);
/*int*/ TextFrame.prototype.getWidth = function()
return(this.computeWidth({VISIBLE:false}));
/*void*/ TextFrame.prototype.resizeWidthBy = function(/*int*/ widthOffset)
// Redimensionne la largeur de widthOffset (signe)
this.geometricBounds = Array(
  this.geometricBounds[0],
  this.geometricBounds[1],
  this.geometricBounds[2],
  this.geometricBounds[3] + widthOffset);
/*int*/ TextFrame.prototype.computeMinWidth = function()
// Renvoie la largeur mini du bloc compte tenu des objets
// incorpores et de l'espacement interne (inner space)
var inSpace = this.textFramePreferences.insetSpacing;
var inWidth = (inSpace.length) ?
  inSpace[1] + inSpace[3] : // inspace gauche et droit distincts
  2*inSpace; // inspace uniforme
return(this.computeIncludedObjectsWidth() + inWidth);
/*int*/ TextFrame.prototype.getCharsCount = function()
return(this.characters.length);
/*int*/ TextFrame.prototype.getLinesCount = function()
return(this.lines.length);
/*arr*/ TextFrame.prototype.getLinesSizes = function()
return(this.createLinesSizesArray());
/*int*/ TextFrame.prototype.preserveCharsCount = function(/*int*/ charsCount)
// OUI -> -1  , NON -> 1
return( (this.characters.length != charsCount) ? 1 : -1 );
/*int*/ TextFrame.prototype.preserveLinesCount = function(/*int*/ linesCount)
// Indique si:
// - nb de chars = linesCount
// - le bloc NE DEBORDE PAS
// OUI -> -1  , NON -> 1
return( ((this.overflows) || (this.lines.length != linesCount)) ? 1 : -1 );
/*int*/ TextFrame.prototype.preserveLinesSizes = function(/*arr*/ linesSizes)
// Indique si:
// chaque ligne x est isocele a linesSizes[x]
// YES -> -1  , NOT -> 1
return( (this.isoceleLines(linesSizes)) ? -1 : 1 );
// METHODES SPECIFIQUES A COLUMN
/*bool*/ Column.prototype.isEmpty = function()
for (var i=this.cells.length-1; i>=0 ; i--)
  if (this.cells[i].characters.length>0) return(false);
return(true);
/*bool*/ Column.prototype.isOverflowed = function()
// Indique si au moins une cellule est saturee
// !! ATTENTION: Column::overflows n'est pas fiable !!
for (var i=this.cells.length-1 ; i>= 0 ; i--)
  if (this.cells[i].overflows) return(true);
return(false);
/*int*/ Column.prototype.getWidth = function()
return(this.width);
/*void*/ Column.prototype.resizeWidthBy = function(/*int*/ widthOffset)
// Redimensionne la largeur de colonne de widthOffset (signe)
// !! Il faut RAFRAICHIR l'affichage !!
this.width += widthOffset;
// rafraichissement
if (APP_INT_VERSION > 3)
  // CS2+
  this.recompose();
else
  // CS -- merci a Tilo pour ce hack --
  for(var i = this.cells.length - 1 ; i >= 0 ; i-- )
  // Ce test stupide provoque le rafraichissement!
  if (this.cells[i].contents == null) {}
/*int*/ Column.prototype.computeMinWidth = function()
// Renvoie la largeur mini de la colonne compte tenu des
// objets incorpores et de l'espacement interne
var iCell = null;
var w = 0;
var r = 0;
for (var i=this.cells.length-1 ; i>= 0 ; i--)
  iCell = this.cells[i];
  w = iCell.computeIncludedObjectsWidth() +
  iCell.leftInset + iCell.rightInset;
  if (w > r) r = w;
return(r);
/*arr*/ Column.prototype.getCharsCount = function()
// Renvoie (tableau) le nb de cars de chaque cellule
// si la cellule est saturee, le nb de cars est signe negativement
var r = new Array();
var sgn = 0;
for (var i=this.cells.length-1 ; i>= 0 ; i--)
  sgn = (this.cells[i].overflows) ? -1 : 1;
  r.unshift(sgn * this.cells[i].characters.length);
return(r);
/*arr*/ Column.prototype.getLinesCount = function()
// Renvoie (tableau) le nb de lignes par cellules
var r = new Array();
for (var i=this.cells.length-1 ; i>= 0 ; i--)
  r.unshift(this.cells[i].lines.length);
return(r);
/*bi-arr*/ Column.prototype.getLinesSizes = function()
// Renvoie le nb de chars par cellule et par ligne (matrice)
var r = new Array();
for (var i=this.cells.length-1 ; i>= 0 ; i--)
  r.unshift(this.cells[i].createLinesSizesArray());
return(r);
/*int*/ Column.prototype.preserveCharsCount = function(/*arr*/ charsCount)
// Indique si:
// le signe de debordement (overflow) de la cellule X egale sgn(charsCount[X])
// OUI -> -1  , NON -> 1
var sgn = 0;
for (var i=this.cells.length-1 ; i>= 0 ; i--)
  sgn = (this.cells[i].overflows) ? -1 : 1;
  if (sgn * charsCount[i] < 0) return(1);
return(-1);
/*int*/ Column.prototype.preserveLinesCount = function(/*arr*/ linesCount)
// Indique si:
// - le compte de lignes de la cellule x egale linesCount[x]
// - aucune cellule ne deborde
// OUI -> -1  , NON -> 1
for (var i=this.cells.length-1 ; i>= 0 ; i--)
  if (this.cells[i].overflows) return(1);
  if (this.cells[i].lines.length != linesCount[i]) return(1);
return(-1);
/*int*/ Column.prototype.preserveLinesSizes = function(/*bi-arr*/ linesSizes)
// Indique si:
// - dans chaque cellule x, chaque LIGNE y est isocele a linesSizes[x][y]
// (si une cellule deborde, renvoie 1)
// OUI -> -1  , NON -> 1
for (var i=this.cells.length-1 ; i>= 0 ; i--)
  if (this.cells[i].overflows) return(1);
  if (this.cells[i].isoceleLines(linesSizes[i]) == false) return(1);
return(-1);
// METHODES CENTRALES
/*void*/ Object.prototype.manageFit = function(/*bool*/ FLUIDFITTING)
// !! Sous CS2, previent un crash sur les "grosses" selections multicolonnes !!
// !! Thx to Tilo for this hack --
if (APP_INT_VERSION>=4)
  $.gc();
// ne rien faire si objet vide
if (this.isEmpty()) return;
// largeur mini a preserver
var minWidth = this.computeMinWidth();
// let's go!
this.processFit(FLUIDFITTING, minWidth);
/*void*/ Object.prototype.processFit = function(/*bool*/ FLUIDFITTING, /*int*/ minWidth)
// Ajuste cet objet en largeur
// FLUIDFITTING true -> methode fluide, sinon: methode stricte
// minWidth fixe le seuil minimal
if (FLUIDFITTING)
  { // AJUSTEMENT FLUIDE
  if (this.isOverflowed())
  { // NB : les cellules saturees sont "transparentes" (negligees)
  var charsCount = this.getCharsCount();
  var evalFlag = function(thisObj)
  {return(thisObj.preserveCharsCount(charsCount));}
  else
  var linesCount = this.getLinesCount();
  evalFlag = function(thisObj)
  {return(thisObj.preserveLinesCount(linesCount));}
else
  { // AJUSTEMENT STRICT
   // NB : les colonnes contenant 1 cellule saturee sont inchangees
  if ((this.constructor.name=="Column") && (this.isOverflowed()))
  return;
  var linesSizes = this.getLinesSizes();
  var evalFlag = function(thisObj)
  {return(thisObj.preserveLinesSizes(linesSizes));}
// BOUCLE DICHOTOMIQUE
var sgnFLAG = -1;
var w = ( this.getWidth() - minWidth ) / 2;
while (w >= PRECISION)
  // redim la largeur de +/- w
  this.resizeWidthBy(sgnFLAG*w);
  // +1 = augmenter | -1 = reduire
  sgnFLAG = evalFlag(this);
  // diviser le segment
  w = w/2;
// sortie avec sgnFLAG==+1 -> annuler la derniere reduction -> +2w
if (sgnFLAG>0) this.resizeWidthBy(2*w);
// PROGRAMME PRINCIPAL
if ( app.documents.length > 0 )
  if ( app.activeWindow.selection.length > 0 )
  try {
  var thisDoc = app.activeDocument;
  var FLUIDFLAG = thisDoc.withinDelay();
  var memUnits = thisDoc.getUnits();
  thisDoc.setUnitsTo(MeasurementUnits.points);
  var selObjs = app.activeWindow.selection;
  var objsToFit = null;
  for (var i=selObjs.length-1 ; i>=0 ; i--)
  objsToFit = selObjs[i].asObjsToFit();
  if (objsToFit)
  for (var j=objsToFit.length-1 ; j>=0 ; j--)
  objsToFit[j].manageFit(FLUIDFLAG);
  thisDoc.setUnitsTo(memUnits);
  thisDoc.storeTimeStamp();
  catch(ex)
  thisDoc.setUnitsTo(memUnits);
  exitMessage(ex);
  else
  alert("Aucun objet n'est selectionne!");
else
  alert("Aucun document n'est ouvert!");

Similar Messages

  • HT1541 i need to gift paid App to my subscriber base free, how can i do it? is there any way to automate the process it? i dont mind paying for it

    Hi,
    I have a plan of gifting popular gaming app to my user base based on certain criteria.
    I'm aware that you can gift the app through itunes.
    What i want to know if there is any way to automate the process, like any api calls to gift the app to my user base?
    Any sugestion will be most welcome
    Affu

    Hi affu_india,
    If you are looking to do volume gifting of an app, you may find the following page helpful:
    Apple - Business - Volume Purchase Program for Business
    http://www.apple.com/business/vpp/
    Regards,
    - Brenden

  • How to automate the process of adding members into the planning workflow and assigning owners to it?

    Hi,
    We have a workflow XYZ. After every two-three days our entity structure is getting refreshed - so new entities comes in.
    Every time we have to manually add these new entities to the workflow and assign owners to it.
    Please let me know if there is any option to automate the process.
    Hyperion Planning version is 11.1.2.2 .
    Thanks.

    Hi, Vivek.
    Currently, ExportPDF can only handle 1 file at a time. Adobe Acrobat can do batch export to Excel, however.
    This idea has already been added to the ExportPDF Ideas list ("Export multiple..."). If you'd like to see this improvement to ExportPDF, please add your vote or comment here.
    Thanks.
    Dave

  • Automate the process in finding the measure from the catalog reports

    Hi Experts!
    Is there any way to automate the process of finding the measure in the report and replace with new measure?
    Please let me know if anything that i can use.
    Actually i am using the OBIEE 11.1.1.5 v of obiee.
    Thanks,
    Mani.

    Thanks for your reply.
    Actually we have 100's of such reports, so it cannt be done mannually for each.
    Wondering if there is any process that we can run some script and automate the process instead of manual effort.
    here is little more explanation of my situation
    i got a big Subject Area with hunders of reports created.
    but now we have a requirement of spliting the Big SA to number of Diff SA's (for user visibility) where the measures are splited into diff subject areas.
    now the reports need to be modified accordingly based on the measures of which subject area needs to be....
    hope this makes clear.
    Cheers,
    Mani.
    Edited by: eswar on 15-Oct-2011 09:15

  • Any chance to see the linux-vserver patch included in kernel26 ?

    Hi,
    Is there any chance to see the vserver patch is included in the kernel26 or kernel26ck some day ?
    I often use it (am I the only one ?) and I'd love to be able to use it out of the archlinux box.
    Thx and congrats for the work.
    Last edited by arno (2007-06-21 11:22:04)

    Sorry, I can get into more details :
    Lazily quoting the http://linux-vserver.org web site :
    "Linux-VServer provides virtualization for GNU/Linux systems. This is accomplished by kernel level isolation".
    The main advantage over Qemu, Virtualbox or Vmware, is that there is only a very little performance loss for the virtual hosts. Virtual hosts, which all are linux hosts are isolated from eachother, no hardware emulation is done. You can see it like a kind of "super chroot/jail".
    Basically, this is composed of two parts : a kernel patch, ans some userland utilities. The kernel patch (http://ftp.linux-vserver.org/pub/kernel … 0-rc3.diff) applies easily against a vanila kernel. The linux-vserver guys follow very well the kernel updates and I've been applying the patches for several versions now, without problem.
    Userland apps have already been ported for Archlinux (http://oldwiki.linux-vserver.org/ArchVserver), even if they look a little outdated and can't be found on the archlinux.org package search engine.
    The only hitch is the need to build a home-maid kernel.
    I thought this patch inclusion could be of someone else's interest.
    What is Archlinux kernel patch admittance process ?
    Do you provide only vanila kernels ?

  • Hi my name is Vajra from INDIA, i am using ipod shuffle 3rd generation but it is not working properly due to battery problem, i need to change the battery please guide me how to change the battery or any chance to replace the ipod shuffle 3rd generation ?

    Hi my name is Vajra from INDIA, i am using ipod shuffle 3rd generation but it is not working properly due to battery problem, i need to change the battery please guide me how to change the battery or any chance to replace the ipod shuffle 3rd generation ?

    Seems no one care about us .no one replied till no@!!!!@ strange

  • Hello, I bought a used iphone 3gs, and iphone locked to one operator there is any chance to unlock the phone forever?

    Hello, I bought a used iphone 3gs, and iphone locked to one operator there is any chance to unlock the phone forever?

    ONLY the carrier to which it is locked can unlock it.
    Contact that carrier and ask if they offer this service and if you qualify

  • Any chance to change the personnel No. of an employeeu2026

    Dear all,
    I have created one employee with a personnel no. 1178 instead of 1179,  
    Is there any chance to change the personnel no.???
    Regards,
    Milarepa

    Hi,
    You can use the transaction PU00 for deleting a personnel number. But before proceeding the same please make sure this employee have not accounted for Payroll and Time evaluation.
    Regards
    Raviiiiiiiiiiiiiiiiii

  • Is it possible to automate the process...?

    Dear members!
    Is it possible to automate the process of subtitling? For example if I have MS Word file with the following table:
    Starting Timecode
    Ending Timecode
    Language of Original
       Local       Language   
    0001
    00:00:06:00
    00:00:06:01
    0002
    00:01:10:18
    00:01:12:02
    0003
    0004
    Is there any way to put that file on timeline in Premiere to superimpose subtitles with dialogues (for example) of Original Language? Can anyone give me step-by-step instruction on how to do that? I can edit text file in MS Word and delete unneeded column. Manual making of a few thousand titles is so boring!
    As a result I have to export AVI file with superimposed subtitles on screen.
    Thanx in advance to everybody!

    I believe that using After Effects is a lot easier because you can change the source text with keyframes.
    Take a look at this thread and watch the tutorial I did to demonstrate this.
    http://forums.adobe.com/message/4770932#4770932

  • Can I automate the process of printing booklet?

    Can I automate the process of printing booklet?
    I use a saved Print Preset named "A5 booklet"
    I supply page range 1-16 then print as pdf using PDFCreater.
    File Name as 01.pdf, then pages 17-32 as 02.pdf and so on.
    I am aware that InDesign provides printBooklet() method through scripting, but I have no clues how to use it.
    Any links or scripts are welcome.
    Thanks and regards.

    Thanks stephen0218 for the idimposer link.
    I'm aware of Print Booklet... functionality, and I am currently using it to manually print booklets from InDesign files.
    I want to automate the print booklet task itself.
    I make 01.pdf with page range of 1-16, then 02.pdf with page range 17-32 and so on.
    It is not that much tedious for small files of upto 160 pages, which generate 10 pdf files. But for larger projects of upto 600 pages, the manual work is very time consuming and error prone process.
    I tried to call "document.printBooklet" function in JavaScript, but got stuck in supplying dynamic page ranges.
    Here is the Documentation.
    It will be a great help if anyone can help me here.
    Thanks and regards.

  • How to automate the process of Uploading RPD ?

    Hi All,
    I am on 11.1.1.6.0 and Windows server 2008. What I am wanting to do is to automate the process of uploading the repository on my development server and restarting the server automatically. And I want this to happen 3 times a day at specified intervals. For ex, I want that automatically, at 6:00 AM, 3:00 PM and 6:00 PM everyday my MUD repository should be uploaded to my development BI server without any manual intervention whatsover.
    I know this can be done using the wlst sctipts. I have couple of questions around that will appreciate if anybody can answer both of them.
    1. I don't know and understand the language which wlst scripts use. And even if somebody gives a ready script I should be able to understand that. So the question is from where can I learn that language. Like for BIP, we can learn xslt from w3 schools. How can i do for wlst tool/ scripts?
    2. Lets say I learned the language and created a script abc.py which uploads the repository. But How will that be automatically called or run on my Development Server? By a windows batch script? If yes, then who will run that windows batch script ? Do I need to manually run that? Or running of Windows Batch script can also be automated and can be run at specified intervals as I want?
    I'll appreciate if somebody can explain me this in detail.
    Thanks,
    Ronny

    Check this
    http://ssssupport.blogspot.com/2012/10/obiee-11g-deployment-using-shell-script.html
    Any updates on this :)
    How you end up with this?
    Edited by: Srini VEERAVALLI on Dec 28, 2012 8:21 AM
    Any updates Ronny!!
    Edited by: Srini VEERAVALLI on Jan 2, 2013 7:33 AM

  • Need to automate the process of partial orders-deliveries

    Hi experts,
    I need to automate the process of partial order deliveries in VL01N.
    I checked few BAPI for the above requirement.
    BAPI_OUTB_DELIVERY_CHANGE
    BAPI_OUTB_DELIVERY_SAVEREPLICA
    BAPI_OUTB_DELIVERY_CONFIRM_DEC
    But have no clue ,which would be relevent.
    If any one of you have worked on any such requirement before,please let know,which BAPI i can use in this development.
    Thanks in advance.
    Meenakshi

    Hi
    Try with function modules WS_DELIVERY_UPDATE and RV_DELIVERY_CREATE.
    Regards
    Srilaxmi

  • How to automate the process of creating BIAR files

    Dear All,
    Is there any way I can automate the process of creating BIAR files from the repository (Crystal / Webi reports)?

    Hi
    please check the administration guide for BO XI 3.1 (look in the chapter BIAR command line tool)
    [http://help.sap.com/businessobject/product_guides/boexir31/en/xi3-1_bip_admin_en.pdf]
    You can generate BIAR files from the command line and thus automate this at OS level.
    Regards,
    Stratos

  • Who can I automate the process of printing booklet?

    Who can I automate the process of printing booklet.
    I use a saved Print Preset named "A3 booklet"
    I supply page range 1-16 then print as pdf using PDFCreater.
    File Name as 01.pdf, then pages 17-32 as 02.pdf and so on.
    I am aware that InDesign provides printBooklet() method through scripting, but I have no clues how to use it.

    Thanks stephen0218 for the idimposer link.
    I'm aware of Print Booklet... functionality, and I am currently using it to manually print booklets from InDesign files.
    I want to automate the print booklet task itself.
    I make 01.pdf with page range of 1-16, then 02.pdf with page range 17-32 and so on.
    It is not that much tedious for small files of upto 160 pages, which generate 10 pdf files. But for larger projects of upto 600 pages, the manual work is very time consuming and error prone process.
    I tried to call "document.printBooklet" function in JavaScript, but got stuck in supplying dynamic page ranges.
    Here is the Documentation.
    It will be a great help if anyone can help me here.
    Thanks and regards.

  • How can we automate the process of selective deletion in process chain

    Hi,
    I got to delete data from ODS and InfoCube selectively every Tuesday. So I am aware that there is an ABAP program through which we can automate the process of selective deletion in Process chain. So plz let me know the proceedure to automate this process.

    Hi,
    Try this.
    Need to genrate the deletion program using tcode Delete_Facts.
    steps : 1 run the Delete_Facts tcode and give your cube name in the input parameter
    step2 . select deletion program and execute . you will get the system genarated program
    step 3 copy this prg and save as zprg.
    step4 : run the program with selection
    step 5. if your selection is date then you need to create dynamic varient needs to be populate the value for the date fields
    step 6: you need to maintain the date values in the TVAR table if necessary
    step 7. you need to use this custom prg in your process chain after completion of test
    source : SDN.
    Thanks,
    JituK

Maybe you are looking for