How to protect source of your precious scripts

Hi all,
This short topic is dedicated to all script writters, who wants to keep their scripts out of reach for third persons.
The main framework we'll be talking about is the simple directive called #targetengine.
As we all know, even some of the simplest scripts we made can be really powerfull and lucrative. This is the main reason why we may want to keep them out of range for other people and our employers.
This is the moment where #targetengine directive comes handy.
OK, lets get started.
#targetengine is getting two (as far as I know) basic parameters.
- main (which destroys all the variables/function definitions after scripts is executed)
- session (which keeps all the stuff while application is still running).
You can also make your own global spaces and call them whatever you want to, but we'll be working on just two of these. 
In first place, try to copy and paste this simple script to your extended toolscript and try to run it.
#target illustrator
#targetengine "main"
alert(msg);
alert(var1);
safeFunction();
It does not work! You will get a message that both of these variables are not defined and safeFunction is not a function, and thats good.
Now, try to run this script and then run the other one.
#target illustrator
#targetengine "session"
var msg = "this is a message";
var var1 = 4345;
function safeFunction()
          showMsg();
function showMsg()
          alert(msg +"\n"+ var1);
As you have probably already noticed, the 2nd script works like a charm now.
No matter how experienced coders you are, I suggest you to always keep your property safe, and this is the best way of making your scripts safe.
Have a nice day,
Igor
PS. excuse me my english.

BeOpenMinded wrote:
PS. excuse me my english.
Your English seems perfectly fine, no worries there, thanks for sharing.
BeOpenMinded wrote:
- How to protect source of your precious scripts
- keep … scripts out of reach for third persons
- keep your property safe, and this is the best way of making your scripts safe
I am just curious however how does this approach keep scripts safe, out of reach and protected from third parties, in what capacity?

Similar Messages

  • How do you list all your created scripts?

    Hi all.....
    Is there a way to list all of the scripts that you have created that are in your database? I tried the SELECT * FROM CAT but that wont list your scripts. Any ideas?

    786304 wrote:
    If we have stand alone procedures and functions
    user_source or dba_source gives the list
    **If we have the procedures and functions within the packages How will us know?**
    Can anybody give me the query for that one
    Thanks,Hi,
    Check out this.
    SELECT dbms_metadata.get_ddl('PACKAGE','your_package_name') FROM dual;
    SELECT dbms_metadata.get_ddl('PACKAGE_BODY','your_package_name') FROM dual;Hope this Helps.
    regards,
    achyut k

  • How to protect source code

    hai,
    can u pls tell how to secure the java source code in the client place.is there any convesion method to secure the source code.

    Pre-judging by the way the OP communicates here, it's probably a safe bet that his code is already cryptic enough - it's probably a mess that would be hard to follow.

  • How to protect sourcecode

    How to protect sourcecode,i have seen,there are many programs,which can convert .Class files to .java files,ok,How to protect resourcecode.thanks

    Write your code in C++ and compile it using a good optimizing compiler, like icc (Intel C++ Compiler). (Hand-written assembly code is relatively simple to be decoded because it must be small and understandable by its writer, a human being; Microsoft C++ is a good compiler, but generates machine code that is very understandable by a human being - you don't need to be an unemployed Russian guy with a PhD in number theory to break the code - just being a normal guy that has a lot of time to spend is enough. Try reading the very contrived code that icc generates and compares it with the MSVC++ compiler generated code...)
    To make the C++ code being harder to be understood if disassembled, use the Standard C++ Library (STL) and use a lot of templatized code, but turn the optimization options to the maximum available.
    Java and .NET languages are not very amenable to source code protection. Obfuscating tools are available, but if you understand the subject of the code, you can easily guess the original source code. For instance, you can try to decompile the code of RSA JSafe that comes with the Sun JCE. Even obfuscated by Dash-O it is perfectly possible to understand what algorithms are implemented.

  • How to protect java source code?

    Hi everybody
    I love Java but I think that people can decompile my class file to take my source code!Like this program
    http://kpdus.tripod.com/jad.html
    How to protect our source code?Even you use Jar files, they can unzip them and decompile!
    Thanks in advance!

    Use Java Obfuscator. Try one of these
    http://preemptive.com/products/dasho/index.html
    http://www.zelix.com/klassmaster/obfuscator.html
    http://java-source.net/open-source/obfuscators

  • How to track what your Calc Script/Business Rule is doing?

    Hi,
    I wanted to know the methods or the best way to keep a track of what your Calculation Script of Business Rule is doing once you execute it.
    Or suppose it fails for some reason and the reason is not a syntax error (that it usually would show up in EAS while validating)how can you know what's going wrong?
    Please let me know !
    ~ Adella

    All the CDFs are available at - https://www.samplecode.oracle.com/tracker/tracking/linkid/prpl1004/action/ExecuteQuery?query=essbase1
    There are also the Echo CDFs in the String collection -
    @JechoBoth - Echoes back all arguments passed to the function. To pass an array of arguments use @List(comma delimited list).
    @JechoString - Echoes back all arguments passed to the function. To pass an array of arguments use @List(comma delimited list).
    @JechoDouble - Echoes back all arguments passed to the function. To pass an array of arguments use @List(comma delimited list).
    Saying that they usually need to be a calc block so if you are expecting to find where a calc is up to in an aggregation it is not going to tell you much.
    Also you have to watch out if you are calculating a large number of blocks then you can end up outputing more information that you would ever need.
    If you look in the essbase application log you can actually get an idea of which part of the script the calc is executing and times without the need for CDFs.
    Also if a script fails then the app log is the place to go and check.
    You can also look at the standard calc commands in essbase
    SET NOTICE - http://download.oracle.com/docs/cd/E17236_01/epm.1112/esb_tech_ref/frameset.htm?set_notice.html
    "Monitors the progress of your calculation by providing completion notices at intervals during the calculation. The number of notices depends on the level you specify."
    SET MSG - http://download.oracle.com/docs/cd/E17236_01/epm.1112/esb_tech_ref/frameset.htm?set_msg.html
    "Sets the level of messaging you want returned about calculations, and enables simulated calculations."
    or if on 11.1.2.x then the @RETURN function - http://download.oracle.com/docs/cd/E17236_01/epm.1112/esb_tech_ref/frameset.htm?return.html
    "Exits the calculation immediately under specified logical conditions. You can use the IF... ELSEIF calculation command block to specify the logical error conditions, and use the @RETURN function to exit the calculation with customized error messages and levels."
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • [Tip] How to protect Image file

    Hello,
    If you have ever wanted to protect your image file,
    especially within your Flash content,
    this article will be helpful.
    First of all, there are some points you need to protect when
    you deliver image data with Flash.
    1. Internet Browser Cache.
    Even though you use 'HTTPS' protocol when you deliver your
    file,
    if it is pass the 'Network (or Protocol) Layer' of your
    machine, it is already in 'plain' data
    (not encrypted), and can be read by Internet Browser.
    Those 'plain' data will be stored in Internet Browser's
    Cache directory.
    There are many Internet Browser Cache reader programs, and
    they can intercept those
    data before the Internet Browser program deletes the cache
    files.
    So, just using 'HTTPS' is not an answer. You need to encode
    your image data
    with your own (or with well known cypher algorithms)
    encoding/decoding methods.
    In this article, I want to explain more detail about this. I
    scramble the image
    so that make it hard to figure out what the original image
    was, not only with human eyes
    but also with 'strong enough' 'Key' length.
    2. Screen Capture.
    Even if you encoded your image data, it will be finally
    shown on your screen,
    without any noises, or any other ugly filters.
    So, you can 'Capture' your monitor screen itself.
    There can be many ways to avoid this. First, you can erase
    the system's 'Clip board'.
    You just can erase it regularly, or you can detect whether
    the Internet Browser -which is
    showing your image data- is active or not and erase clip
    board when it is active (in foreground),
    and hide your Flash area when the browser is inactive (in
    background).
    If a hacker just take a picture of monitor screen with high
    quality Camera,
    you still can avoid that, by showing some black rectangle,
    or any layers on the screen
    regularly only in very short period (like mili-second). But
    I think this way sometimes you feel
    tired or be annoyed when you watch that kind of blinking
    screen.
    == About my code ==
    What I want to present here today is 'modifying(encoding) the
    image' data itself.
    There are many ways you can try for modifying your image data
    and revert it back to original data.
    You can use legacy block cipher algorithms like DES, AES, for
    encoding and decoding the
    image data, because the image data (RGB values) what Flash
    uses is actually a combination of 'bit's.
    But if you decode the 'encoded image' data, you probably use
    'get pixel'/'set pixel' function for
    reconstructing the proper 'RGB' value of each pixel. But I am
    sorry that this function is extremely slow
    so that you need to wait for a couple of minutes to see an
    image.
    So, what I want to show you today is 'Scrambling the image'
    like 'picture puzzle',
    with using 'copyPixels' function which is 'extremely fast'.
    (Actually, there can be many other solutions for this, so
    please don't hesitate to proceed your own research)
    Let's say you have 8*8 pixel size of image blocks, and you
    completely disorder those blocks for
    entire image area. That size of block is too small to figure
    out where it should be, with our
    humble human being's naked eyes. So, you need to know the
    'answer', which is saying what image block
    was originally on which 'cell'. This 'answer' is the 'key'
    for my simple 'image scramble' logic.
    The 'key' I said here, you should understand that, is the
    'key' value of normal 'block cipher' algorithms.
    So, if you know the key, you can rearrange all those 'blocks'
    back, but if you don't know the key,
    simply you can't do that, or you need to wates tremendous
    time for that.
    Here, I use 16*16 size block for your eye's convenience, and
    with 8*8 size of 'matrix' which is
    comprised of each 16*16 size blocks. I mean, one 8*8 matrix
    has 64 blocks, so each block of
    one 'matrix' can be at '1st cell of matrix or 64th cell of
    matrix. So, the 'odds' is 'Factorial of 64',
    which is 64! == 1.268869322e+89 .
    Let's say you know my algorithm (complete source code), and
    you try every different 'matrix' values.
    If it takes 0.001 seconds to test one 'matrix' value you have
    chosen, it will take
    "(64!) / (1000*60*60*24*365) =
    4.0235582250724303685766549129617e+78" Years!!!! to find exact
    matrix value.
    == FLA sample ==
    In my sample *.fla file, I embedded all those 'key' values.
    So, you can not use my sample directly for your
    own project. But I think this sample will give you an useful
    idea for your own implementation.
    <* Exchanging the key values *>
    For example, you need to get the 'key' values from the
    server, only when it is needed.
    You can use 'loadVariables()' function for this purpose.
    But, all data delivered by 'loadVariables()' or
    'getUrl()', or any other functions of Flash, are
    'Cached'.... So, you need to exchange that 'key' values
    more safer way.
    One of that 'safer key exchange' is to use 'token'. For
    example, when the client requests the key value
    to the server, the client should generate an random value (I
    will call it 'token') and send it to the server.
    Now the server modifies the 'key' value 'with the token',
    and sends back to client. Finally, the client
    decode the 'key' value with the token value it generated.
    As you can see, my logic is just 'rearranging each blocks'
    with respond to the given matrix values (key).
    It is really really simple. There in the ActionScript code,
    you can see 3 matrix, and some other variables.
    var chessunit = 16 // Size of block
    var arrayw = 8 // Width of Matrix
    var arrayh = 8 // Height of Matrix
    var arraysize = arrayh * arrayw
    var chessarray = Array (arraysize) // Matrix for decoding
    chessarray = Array
    (64,37,5,35,45,25,52,38,12,61,34,23,3,26,39,58,32,28,17,2,60,16,59,19,57,48,43,18,47,21,4 0,15,31,6,44,46,30,51,27,56,20,24,13,7,42,1,49,54,36,53,9,50,4,8,10,14,33,11,22,63,55,29,4 1,62)
    // In case of the width of an image is not exactly the
    multiple of the width of matrix,
    // we need to encode the right most area of the image.
    // So, I simply use another matrix for only that area.
    // Maybe You can generate more bigger image, of which the
    width of it is exactly the multiple of
    // the width of matrix. And you let the decoder to show only
    the original size of the image.
    // Please try yourself. :)
    var dwArray = Array
    (32,19,3,18,23,13,26,6,31,17,12,2,20,29,16,14,9,1,30,8,10,24,22,11,15,28,7,4,21,25,27,5)
    // In case of the Height of an image is not exactly the
    multiple of the Height of matrix,
    // we need to encode the bottom most area of the image.
    // So, I simply use another matrix for only that area.
    // Maybe You can generate more bigger image, of which the
    Height of it is exactly the multiple of
    // the Height of matrix. And you let the decoder to show
    only the original size of the image.
    // Please try yourself. :)
    var dhArray = Array
    (40,23,4,22,29,16,33,24,8,38,21,15,2,17,37,20,18,11,1,10,12,36,30,27,13,25,28,14,19,32,35 ,7,5,26,3,31,34,6,9,39)
    You can change the block size, matrix size, any values you
    want.
    By the way, if the block size becomes smaller, you'll get
    more stronger security level. But you have to
    compensate it with the slow down of the performance.
    ** Ooops, I can not attach my sample *.fla file, but only
    ActionScript code here...
    But I believe you can try without testing my *.fla sample.
    If you really want to test it, please mail me.
    ([email protected])
    ** You need to 'export' image object, with the name of
    "img0".
    == Image encoder ==
    Encoding (Scramble) the original image is also simple. You
    just need to copy each blocks in reverse of
    the 'ActionScript code'. That's all. You just use same
    'matrix', but copy source and target reverse of
    ActionScript code. I think you can write it with any
    languages you like, C/C++, C#, Java, and
    anything.... right?
    == Block cipher ==
    Now, you know that my implementation is kind of 'intuitive'
    representation of 'block cipher'.
    More precisely, it is called 'ECB', which encodes each
    encoding block (matrix) with the key values
    from the beginning to the end. You can twist the matrix every
    time you pass one matrix area of an image.
    It is called 'chaining'. There are some 'chaining' block
    cipher methods like 'CBC'...
    (If you want to know more, please look up "
    http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation
    Thank you for your time to read my humble article,
    and wish you Good luck. :)

    Hello Crandom,
    If you want to encrypt a critical strings, like special
    server script url or parameters, then it is simple.
    The most simple and faster method is to "XOR ing the string"
    with a key string. You use the same key string when you encode and
    decode (by Just using XOR). This is similar to 'Stream cipher'
    algorithms.
    And there is "open source cipher algorithm" (called
    AS-CryptoLib) written in ActionScript, including most of algorithms
    like Hash, Block cipher, RSA... if you want more stronger
    encryption strength..
    But I bet you also want to encode your script logic itself.
    In that case, you should write your own 'Interpreter'. For example,
    you encode all your ActionScript source code string, and decode it,
    and you interpret each script tokens like 'if' 'for' 'while',
    etc...
    Actually, your question also inspired me to think about
    loading script string and run it on the fly.
    Maybe.... we can start from this article...
    http://www.adobe.com/cfusion/knowledgebase/index.cfm?id=tn_16691"
    I suggest you just use commercial SWF file encrypting tools
    like Ameyata's "SWF encrypt". It changes the SWF file structure so
    that usual 'SWF file decompilers' can not read codes properly.
    And.... If you can use Flex2 (for your current project), and
    it is ok with you (If you don't need to change a lot in your
    current project) to use JavaScript to control your objects or
    behavior of SWF file, then I think there is another possible way.
    After you decode the Javascript string, you load a web page,
    or change the content of HTML file already opened, so that your new
    script will be working, as what you wanted to be. But I didn't test
    it :)
    Best regards.

  • [TUTORIAL] ADD YOUR OWN KEYBOARD SHORTCUTS TO YOUR JSX SCRIPTS

    This is for Windows only; it uses a feature to launch your favorite software via a keyboard shortcut. It’s been here for a while but it just never occurred to me to use it for this purpose.
    1.       Create a shortcut on the Desktop that points to your script.
    2.       Assign a keyboard shortcut to it. That’s it!!!!
    If you don't know how, here’s a step by step
    1.       Open the folder where all your scripts live
    2.       Right click on any of them and click on “Send to …” -> “Desktop (Create Shortcut)”
    3.       (Optional) Rename the shortcut; to help you remember it is a good practice to include the actual key combination
    4.       Right click on the shortcut, click on “Properties”
    5.       The Shortcut Key says “None”, place the cursor there and hit for example Ctrl+Alt+8
    6.       Click on “Apply” then on “Ok”
    7.       That’s it, go to Illustrator and hit your key combination.
    Notes:
    1.       Add the following line to the beginning of all your jsx scripts “#target Illustrator” (without the quotations)
    2.       If there are duplicate key combinations, your newly created shortcut will take precedence over any existing Illustrator shortcut used for something else, so…to help you see what key combos are available:
              1.       In Illustrator, go to “Edit” -> “Keyboard Shortcuts…”, then click on “Export text…”
              2.       The file is saved as a text delimited, open it with Excel or similar program to be able to sort
              3.       This is what I get, a sorted list that easily shows what’s available
    3.       If you have lost of scripts, your desktop will soon be overcrowded with icons, which many people really hate. An alternative could be to create a shortcut to the folder containing all your scripts and assign a key combination. When you’re in Illustrator and use the key combo the folder will open and you will have to double click on the file to run it. Not ideal….but your desktop will be uncluttered and is still better that going to the menus to run your scripts.
    any comments or questions are welcomed

    Carlos - it is not a windows security warning, and there is no checkbox. This is coming from extendscript (it has that icon when you alt-tab). Windows doesn't know that this is a script, the OS just launches extendscript with the file as an argument.
    The text is:
    You are about to run a script in Adobe Illustrator CS5. You should only run scripts from a trusted source. Do you want to run the script?

  • Rolling Your Own Script Editor

    Does anyone know if there is a way in a window you've developed on your
    own to access Forte's "compile" logic? Have a TextEditField and would
    like the stuff in it to be compiled.
    Curtis Marsden
    [email protected]

    If we are making a text-editor wish list, let me add my two cents worth --
    How about text-sensitive help - when you do f1, look up the word under the
    cursor, and if it is found, automatically position to that topic in the
    help file. And as long as we are talking about help, how about more
    example syntax, suitable for cutting and pasting?
    I do like Forte's search and replace feature, with the little check-boxes,
    but wish that it would find all references, not just those in methods. I
    got nailed once changing an attribute or method name (I forget which) that
    was also referenced in a virtual attribute. The code broke, and it was
    pretty hard to track down why.
    Beyond that, I would echo ALL of Richard's suggestions. If I were to pick
    the one or two points that I would consider most important, it would be
    these: Using color to highlight key words and comments in the methods; and
    using a treeview with projects, classes, and methods to simplify navigation
    of the project hierarchy.
    --Jeanne
    ======================================================
    Jeanne Hesler <[email protected]>
    MSF&W Software, Product Development
    (217) 698-3535 ext 207
    http://www.msfw.com
    ======================================================
    /\ Imaging Developer - the only imaging product
    \/ integrated into the Forte Development Environment
    ======================================================
    From: Richard Stobart <[email protected]>
    To: Don Nelson <[email protected]>; Thomas Mercer-Hursh, Ph.D.
    <[email protected]>
    Cc: Forte Users <[email protected]>
    Subject: Re: Rolling your own script editor
    Date: Sunday, March 29, 1998 6:45 AM
    I think the point is that the editing in Forte is archaic. Someone (andwe
    all are looking directly at Forte themselves) needs to provide a user
    friendly development environment.
    Useful features that are on all successful IDE's built in the later partof
    the century are:
    Text highlighting - This doesn't even work properly in V3F. Tryshift-down
    past a long line.
    Context highlighting or colours - Type a reserved word and it appears in
    bold would be a good start.
    Search - What is that greyed out cancel button for?
    Search - I am reading someone's code and they are calling a method on anSO.
    How do I quickly find where that method is?
    Layout - What about a tree view of Projects, Classes and
    Methods/Attributes - Double click on the method and go directly there. Take
    a look at MSVC for a useable interface.
    'How do I?' on help.
    Why is it necessary to keep going to the web to look for tech support?
    Can't that be added to Help.
    Object ID's - all or nothing. Try changing an object's name. All the
    function prototypes change - none of the code changes - brokeneverywhere.
    If there was a descent Search and Replace (Would you like to replacethis?
    And the text in your function prototype, Would you like to replace this
    too?) this would be vaguely acceptable.
    I could go on but I won't.
    Regards
    Richard Stobart
    Consultant, ECSoft, UK
    101 Wigmore Street
    London W1H 9AA
    (0171) 355 1101
    -----Original Message-----
    From: Don Nelson <[email protected]>
    To: Thomas Mercer-Hursh, Ph.D. <[email protected]>
    Cc: Forte Users <[email protected]>
    Date: 29 March 1998 01:49
    Subject: Re: Rolling your own script editor
    You probably could, but it would very likely "break" with future
    versions
    of Forte. Not recommended at this time.
    Don
    At 03:32 PM 3/27/98 -0800, Thomas Mercer-Hursh, Ph.D. wrote:
    At 09:45 PM 3/27/98 +0000, Alfred Scholldorf wrote:
    No, but Wow would that be a cool feature!
    Does anyone know if there is a way in a window you've developed on
    your
    own to access Forte's "compile" logic? Have a TextEditField andwould
    like the stuff in it to be compiled.
    [email protected]
    Also potentially quite interesting would be the option to use optional
    editors in place of any standard one. I have been very impressed, for
    example, with ED4W and its ability to recognize syntax, use color to
    highlight syntactically relevent areas, and provide typing shortcutswhich
    can pop in whole language segments in response to a few keystrokes. They
    haven't done a Forte language template yet, but they do provide all the
    tools necessary to do one and they have provided the capability withmany
    other languages to hand the current buffer to a compiler, collect the
    errors, and then return to ED4W with errors marked. I don't know howeasy
    it would be to get it to interface with the repository, but I don't seewhy
    this should be that difficult.
    =========================================================================
    Thomas Mercer-Hursh, Ph.D email:
    [email protected]
    Computing Integrity, Inc. sales: 510-233-9329
    550 Casey Drive - Cypress Point support: 510-233-9327
    Point Richmond, CA 94801-3751 fax: 510-233-6950
    ============================================
    Don Nelson
    Regional Consulting Manager - Rocky Mountain Region
    Forte Software, Inc.
    Denver, CO
    Phone: 303-265-7709
    Corporate voice mail: 510-986-3810
    aka: [email protected]
    ============================================
    "Until you learn to stalk and overrun, you can't devour anyone" - Hobbes

  • How to protect SAP Application Tables and Reports in R/3

    Hi Gurus,
                 Any one please explain me detail how to protect tables in R/3 with different senarios.
                  How to protect reports in SAP R/3 without assigning SA38 transaction access
                  How to protect Program in SAP R/3 in R/3

    Hello Happyman,
    <b>What do you mean by Protect Table, Program and Report?</b>
    Let me ask you one base Question, On which area are you working? Are you from functional side or Technical side (Developement or Basis guy)?
    This is very clear cut answer that with the restricted autorization you can protect table and programs. Do not provide the change autorization.
    CATCH your BASIS guy and he will do rest of the things. Just explain him what are you want to protect.
    Hope this helps.
    Regards
    Arif Mansuri

  • ME05 How to schedule source list job with steps?

    Can someone please give me instructions on how to create source list ME05 in background using "Steps"? I know how to create a background job in ME05 but need to have several jobs run back to back in the middle of the night. I am reluctant to shedule them at different times and would prefer to use the "Steps" function. Thanks for your input!

    Hello
    Steps:
    First create variant for the report in normal execution mode (to provide input selection parameters in backgrpund)
    1. Transaion code SM36
    Give Job name you want created (Give some meaningful name) and Press enter
    2. Give the ABAP program name
    3. Select variant and save the selections
    4. Come back to initial screen , select the Start condition button and provide the interval as per requirement to schedule the job and save.
    5. Save the job.
    Check the Job in SM37 and relase the Job.
    warm regards
    Rama

  • How to use Standard text in SAP SCRIPTS

    Hi all,
    Please tell me how can we use the standard text what we have created in SO10 with sap scripts.

    Hi Gaurav
    You can create standard texts using the transaction SO10. Then to insert these standard texts in the SAPScript choose the menu, Insert->Text->Standard and choose the standard text that you want to choose.
    Alternatively, you can display standard texts in your SAP Scripts using the command:
    INCLUDE ZSTEXT OBJECT TEXT ID ST LANGUAGE EN
    where ZSTEXT refers to the Standard Text name.
    Reward pts if found usefull
    Regards
    Sathish:)

  • How to Avoid blank page in SAP Script

    I am working on a Script. My Script prints a check.
    This script is a copy of a std script.
    It has 3 pages - First Next Last
    My First page has all the required data.
    My second page is empty with out any values.
    I am getting the blank page as Page 2 when executing. How can we avoid it ?
    Senthil

    Hi Senthil,
    Please see the below points:
    1. Please check what have you defined as the NEXT PAGE for your first page. If so change it and make the first page itself as the next page.
    2. Check your main Window, may be there is blank line at the last of the main window, so check that abd remove that,so you won't get the blank page
    Please see the link which is similar to your problem:
    Re: How to remove blank page in sap script
    May it helps you.
    Regards.
    Deepak Sharma.

  • How to protect the lines in smartforms

    hi gurus
    i want to know how to protect the line in smartforms..
    regards
    baskar

    Check this link.
    http://www.saptechies.com/smartforms-protect-lines-in-main-window/
    if you are using tables, there are two options for protection against line break: – You can protect a line type against page break. – You can protect several table lines against page break for output in the main area.
    Protection against page break for line types – Double-click on your table node and choose the Table tab page. – Switch to the detail view by choosing the Details pushbutton. – Set the Protection against page break checkbox in the table for the relevant line type. Table lines that use this line type are output on one page.
    Protection against page break for several table lines – Expand the main area of your table node in the navigation tree. – Insert a file node for the table lines to be protected in the main area. – If you have already created table lines in the main area, you can put the lines that you want to protect again page break under the file using Drag&Drop. Otherwise, create the table lines as subnodes of the file. – Choose the Output Options tab page of the file node and set the Page Protection option. All table lines that are in the file with the Page Protection option set are output on one page
    Regards,
    Maha

  • How to insert the style in sap-script? and in smart form?

    how to insert the style in sap-script? and in smart form?

    Hi..,
    For SAP scripts u need to create them in SE72 ...
    and u can include them in the script editor as..
    /: STYLE <STYLE-NAME>
    P1 text...............  (*** P1 is the Paragraph format created in SE72 )
    /: STYLE *
    For smartforms u need to go for the transaction (tcode) SMARTSTYLES... here u can create paragraph and character formats globally...
    <b>Sunil, plz do remember to close all your threads, when ur problem is solved !!</b>
    reward all helpful answers,
    sai ramesh

Maybe you are looking for

  • For Purchase order CIF Problem

    Hi APO experts For PO, to  change the INCO Terms Fields and this Field has added in User Exit of CIFPUR01 of structure custom Structure CIFPUORCUSe (No other Fields has changed)  then CIF the PO INCO Terms Has not updated in APO System.. Suppose If i

  • Displaying Multi Line Text

    Hi, I am having issues in displaying multi line text on a Text Item. Basically there is data in the database column DetailText which is stored like this with carriage returns : If I look at the column in Toad it is formatted with all the carriage ret

  • When is Grid Control 11 due out ???? Let me see if I have this right......

    I have to install GC 10.2.0.1 (which uses an Oracle 10.1 database). Then I have to upgrade the Oracle DB to 10.2.0.3, by first installing a new 10.2.0.1 ORACLE_HOME and applying the 10.2.0.3 patchset. Then I have to apply the Grid Control 10.2.0.4 pa

  • ACE DSR (Direct Server Return) Questions.

    I currently have an ACE 4710 configured for DSR. However, I am at a loss as to how I should configure the loopback (or virtual interface) for the servers. Easy to do in Linux, but not so much on a Windows Server 2000 box. Any ideas or guides would be

  • Running Flash as an EXE

    We all have an idea of how to pass in variables / parameters to a swf file when on an html file. But, how do I pass in a variable / parameter / external variable to my flash file when it is an EXE under the following situations; On the call to start