Dynamic Concat

Hi all
i need to concat the field in the table? Below is my code
My ZSTUDGARY table contain admino, fname, lname field.
How to convert:
CONCATENATE <b>it_vbak-admino it_vbak-fname it_vbak-lname</b> into val
SEPARATED BY space.
to
CONCATENATE <b>it_vbak-field1 it_vbak-field2 it_vbak-field3</b> into val
SEPARATED BY space.
REPORT  ZGARY_CONCAT1.
DATA: val type string.
PARAMETERS:field1(30).
PARAMETERS:field2(30).
PARAMETERS:field3(30).
TABLES: ZSTUDGARY.
DATA: it_vbak TYPE TABLE OF ZSTUDGARY WITH HEADER LINE,
wa_fld(72) TYPE C,
it_fldtab LIKE TABLE OF wa_fld.
if field1 <> ''.
append field1 to it_fldtab.
endif.
if field2 <> ''.
append field2 to it_fldtab.
endif.
if field3 <> ''.
append field3 to it_fldtab.
endif.
SELECT (it_fldtab)
INTO CORRESPONDING FIELDS OF TABLE it_vbak
FROM ZSTUDGARY.
IF SY-SUBRC = 0.
LOOP AT it_vbak.
CONCATENATE <b>it_vbak-admino it_vbak-fname it_vbak-lname</b> into val
SEPARATED BY space.
write:/ val.
ENDLOOP.
ENDIF.

REPORT ZGARY_CONCAT1.
DATA: val type string.
PARAMETERS:field1(30).
PARAMETERS:field2(30).
PARAMETERS:field3(30).
TABLES: ZSTUDGARY.
DATA: it_vbak TYPE TABLE OF ZSTUDGARY WITH HEADER LINE,
wa_fld(72) TYPE C,
it_fldtab LIKE TABLE OF wa_fld.
DATA : i_nametab TYPE TABLE OF dntab,  " <b>NEW CODE</b>
           w_nametab TYPE dntab.   <b>" NEW CODE</b>
if field1 <> ''.
append field1 to it_fldtab.
endif.
if field2 <> ''.
append field2 to it_fldtab.
endif.
if field3 <> ''.
append field3 to it_fldtab.
endif.
SELECT (it_fldtab)
INTO CORRESPONDING FIELDS OF TABLE it_vbak
FROM ZSTUDGARY.
CALL FUNCTION 'NAMETAB_GET'
EXPORTING
langu = sy-langu
tabname = 'ZSTUDGARY'
TABLES
nametab = i_nametab.
IF SY-SUBRC = 0.
LOOP AT i_nametab INTO w_nametab .
concatenate val w_nametab-fieldname into val separated by space.
endloop.
Write: val.
write:/ sy-uline.
LOOP AT it_vbak.
clear val.
CONCATENATE it_vbak-admino it_vbak-fname it_vbak-lname into val
SEPARATED BY space.
write:/ val.
ENDLOOP.
ENDIF.
The output will be like this
admino  fname  lname
10          xxx    yyy
Regards,
Niyaz
Please award points for all usefull answers...

Similar Messages

  • Dynamic Concatenation

    Hi all
    How to have a dynamic concat where user can specify wad fields to concat?
    Below code are static and hardcoded where i specify the fields in my program. How to make the field dynamic in the sql statement?
    code----
    Select <b>fname lname</b> into <b>(value1, value2)</b> from ZSTUDGARY where
    admino = '012345'.
    endselect.
    CONCATENATE value1 value2 INTO NAME.
    write:/ name.

    I happen to work on dynamic table these days, too.
    following code works with dbtab, you can see if it works with itab (Open SQL part may need change)
      field-symbols: <lfs_src_tbl> type any,                 " FS represents line structure of source table
                          <lfs_des_tbl> type any.                 " FS represents line structure of destination table
      data: l_src_tblname  type tabname,                   " table name of source table
            l_des_tblname  type tabname,                   " table name of destination table
            lr_src_tbl     type ref to data,               " line structure of source table
            lr_des_tbl     type ref to data.               " line structure of destination table
          " dynamically create table structure
          create data lr_src_tbl type (l_src_tblname).
          create data lr_des_tbl type (l_des_tblname).
          " assign to field-symbols
          assign lr_src_tbl->* to <lfs_src_tbl>.
          assign lr_des_tbl->* to <lfs_des_tbl>.
          " copy data
          select * from (l_src_tblname) into <lfs_src_tbl>.
            move-corresponding <lfs_src_tbl> to <lfs_des_tbl>.
            insert into (l_des_tblname)
               values <lfs_des_tbl>.
          endselect.

  • Dynamic Image Issue url:{concat(../DIR_ID2,'/',Filename_ID357)} command

    Hello.
    I'am actually using dynamic images depending of a filename and directory. This is working fine.
    My problem is that my dummy image have a form (is in horizontal) and the dinamic images that i want to import to my template have multiple forms, i have images in vertical and images in horizontal and when i import an image that is in vertical , the image stays adjusted to my dummy image.
    In this specific case , the customer have more than 20 companies with different logos ,of different forms, and when i import the logo to my template i want that the logo maintains his original form and not the form of the dummy image.
    Anyone know if this is possible?
    Thanks in Advance
    Paulo Duarte
    Edited by: user4256563 on 5/Mai/2011 10:24

    Send me the template, xml file and the image object file to [email protected] and I will take a look.
    Thanks,
    BIPuser

  • "dynamic" String concat in Expression language

    I would like to do something like (in Java)
    String s = flag? "this" : value + "that";in EL it would be #{flag ? 'this' : value + 'that'} but this leads to an error because it tries to add as numbers and not concat as strings.
    how can I do this?
    thanks

    maurozoom wrote:
    thanks
    I've been googling for the whole day with no answer.You are terrible at it then.
    >
    I think there's no solution for my problem in ELHere are two search results which contain solutions to your problem from the search I posted:
    http://www.velocityreviews.com/forums/t133287-el-concat-strings.html
    http://marc.info/?l=myfaces-user&m=114123737923937&w=2

  • [ASK] How to get system date and substring / concate in data manager dynami

    Hello guys.
    I want to run package DM with the input have default value.
    The selection is look like this :
    Dimension : CATEGORY
    Source : PLAN_2011
    Destination : FORECAST_2011
    Dimension : TIME
    Source : 2011.JAN,2011.FEB,2011.MAR,2011.APR,2011.MAY,2011.JUN,2011.JUL,2011.AUG,2011.SEP,2011.OCT,2011.NOV,2011.DEC
    Destination : <same>
    How to get system date year and do the substring / concate ?
    So dimension category source will be PLAN_<YYYY>, destination = FORECAST_<YYYY>
    Dimension source = <YYYY>.JAN,<YYYY>.FEB,<YYYY>.MAR,<YYYY>.APR,<YYYY>.MAY,<YYYY>.JUN,<YYYY>.JUL,<YYYY>.AUG,<YYYY>.SEP,<YYYY>.OCT,<YYYY>.NOV,<YYYY>.DEC
    Depend on year system date.
    Thank you.

    Stuart,How are you storing OnSaleDate. If you are using OnSaleDate as an attribute dimension then you can write a Custom Defined Function to either:1- query your system for the current date and return the number of seconds that have elapsed since 1/1/1970. This is by definition the begining of the Epoch and how Essbase treats Attribute Dimensions of the Date type.public static long getDateInSeconds() {           Calendar cal = Calendar.getInstance();           return cal.getTime().getTime()/1000;}2- Write a Custom Defined Function that will accept the OnSaleDate and return the number of days sincepublic static double daysSince(double myDate) {     return (getDateInSeconds()-myDate )/86400;}

  • Dynamic URL's in RTF Template

    I know I can uset the url:{'c:\logo.gif'} in a picture to dynamically load a gif into by report, but how do I do it if I want the location of the gif to come in on the XML so that I can have different logos or signatures based on the report data?

    Build the URL dynamically. Use an if-then-else or choose test based on some attribute. Then the url can be set using concat (as an example).
    http://download.oracle.com/docs/cd/E12844_01/doc/bip.1013/e12187/T421739T481157.htm
    Element reference from XML file

  • Assigning a password to PDF, using dynamic value from query

    I have a report that bursts through bi publisher, and i would like to dynamically protect each pdf that is generated by using something that is unique to the report, like an office id from the query. I know how to set a static password from the template properties, and i understand how to use the api if i wanted to write my own routine to run the report, i just dont want to do that. i just want to dynamically set the password, while the job runs inside the bipublisher environment as a scheduled job. can this be done? are there ways to embed java api calls/code in the report and have it run inside bipublisher, instead of having to call a webservice?

    You have to do the same way you do for static password,
    instead of typing the password, you refer an element from xml or concat some elements and form a password.
    {/fromROOT/password}

  • How to populate data from dynamic drop down list to the text field

    Hi,
    I tried to populate data from dynamic drop down list to city field. I would like to concat data from drop down list.When selecting add button to add the item and select item from drop down list, data should be displayed in the text field. However, Please help. I spent alot of time to make it works I am not successful.
    Please see the link below.
    https://acrobat.com/#d=SCPS0eVi6yz13ENV0cnUdw
    Thanks for your help
    Cindy

    Hi Rosalin,
    Loop the hidden table, get the values and populate drop down in each iteration.
    DropDownList1.addItem("Text","Value");
    You can use one more solution for this scenario. If it is a matter of 2,3 dropdowns, put three dropDowns in the form layout and give seperate static data binding to them. At run time make the dropDowns hide/visible as per the requirement.
    Hope this helps.
    Thanks & Regards,
    Sanoosh

  • Dynamic CSV file name in target (Multiple workflow calling same dataflow with new global variable value)

    Hi their,
    I have multiple data flows doing 90% of the process same. The difference is in source query where clause and target flat file.
    I used the global variables to dynamically change the query where clause easily, but I need help in dynamically changing the target flat file (CSV file).
    What I want to do is have multiple workflows, which will first set the global variable to new value in the script box and then call the same data flow.
    Please let me know if you have any solution or any idea which might put me in the direction to my quest for solution.
    thank you,

    Hi Raj - in your content conversion for lineitem .. read the additional attribute as well.
    Change your source strcture and additional field company_code
    As you are already sending the filename for each line item using the UDF.. it's just you need to modify your UDF to take another input i.e. Company Code.
    or
    If your PI version is > 7.1 use the graphical variable to hold the filename..
    and while sending the company code information for every item just use the concat function to append filename & company code..
    http://scn.sap.com/people/william.li/blog/2008/02/13/sap-pi-71-mapping-enhancements-series-using-graphical-variable

  • Dynamic attachment name in receiver mail adapter

    Hi  all,
    i am doing a receiver mail scenario (PI 7.1). my requirement is like this :
    Receiver file need to be send in receiver mail attachment and attachment name should be dynamic
    format for the attachment name should be like this
    R+value from a particular field in payload +Timestamp
    for example my file name should be like this  R001_510815021009062532.xml  
    which is     R+ 001_510815 + 021009062532 + .xml
    can anybody suggest me how to go for this requirement? is ther any UDF or should i go for adapter module developement?
    Thanks
    sandeep sharma
    Edited by: sandeep sharma on Oct 13, 2009 8:55 AM

    Hi K Fatima,
    I read your solution.I have a similar requiement but I need to send the entire output payload as an attachment,so I am using XSLT to send the payload as an attachment.
    I am creating the file name through dynamic configuration in XSLT but the name of attachment is not as required but its any random generated name:
    *code used:*
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:map="java:java.util.Map"
      xmlns:dyn="java:com.sap.aii.mapping.api.DynamicConfiguration"
      xmlns:key="java:com.sap.aii.mapping.api.DynamicConfigurationKey">
    <xsl:output method="xml" version="1.0" encoding="UTF-8" />
    <xsl:output indent="yes" />
    <xsl:param name="inputparam"/>
    <!-- mail parameters -->
    <xsl:template match="*">
    <ns:Mail xmlns:ns="http://sap.com/xi/XI/Mail/30">
    <xsl:variable name="new-value" select="Shipment/InternalShipmentNum"/>
    <Subject>Mail</Subject>
    <From>xyz</From>
    <To>abc</To>
    <xsl:variable name="dynamic-conf" 
            select="map:get($inputparam, 'DynamicConfiguration')" />
        <xsl:variable name="dynamic-key"  
            select="key:create('http://sap.com/xi/XI/System/File', 'Directory')" />
        <xsl:variable name="dynamic-value"
            select="dyn:get($dynamic-conf, $dynamic-key)" />
        <xsl:variable name="new-value"    
            select="concat($dynamic-value, 'subfolder\')" />
        <xsl:variable name="dummy"
            select="dyn:put($dynamic-conf, $dynamic-key, $new-value)" />
    <!--Content type -->
    <Content_Type>application/xml</Content_Type>
    <!Content Description>
    <Content_Disposition>attachment;filename "<xsl:copy-of select="$new-value"/>"</Content_Disposition>
    <!--Content Disposition -->
    <Content_Description><xsl:copy-of select="$new-value"/></Content_Description>
    <Content>
    <xsl:copy-of select=".">
    <xsl:apply-templates/>
    </xsl:copy-of>
    </Content>
    </ns:Mail>
    </xsl:template>
    </xsl:stylesheet>
    Please suggest ! I need the value in "Shipment/InternalShipmentNum" as name of attachment.
    Thanks in advance!
    Indu Khurana

  • FileAdapter write mode - Dynamic filename, write down simple text structure

    Hi,
    I tried to use the FileAdapter in a BPEL Process to write down and existing structure as String, comming from Database (CLOB), which has a defined structure.
    My first problem is, that I assign an output filename through the output message header variable, but it does not work. Instead always the name from the Filename convention is taken (wizard like po_%SEQ%.txt).
    My second problem is, that the FileAdapater destroyes the format during the write procedure. E.g.: The String structure is as follows:
    MKKOPF EF585773 07.05.2009 1 XXX Spielapparate u. Restaurant- betriebsgmbH 40031356 Brehmstraße 21 1110 Wien 900000585773 EUR ML
    MKMAIL [email protected]
    MKEINZ EF4428643 28.06.2009 Test Card Casino XXX Gesamtausgabe Textteil Allgemein Großanzeige 4C 1 ST 1 489,00 489,00 GES
    MKPOS. EF4428644 26.07.2009PRVB 948,66 / 10 / +5% WA
    a.s.o, . So you can see, its quite a simple format, which has to stay like that!
    First I tried to use the opaque mode for the fileoutput format, but I was stopped, because of the '/' characters in the source data. So I used the native builder to create a xml schema (I used deliminated file, multiple records, deliminated by white spaces, tabs and spaces). To identify the multiple records, I have chosen the end of line (eol). Except EOF and EOL there is no other choice, like CRLF,\r,\n!
    However, testing my native format, result in writting a file with containing a single line with the original data. So the original line breaks are gone, and therefore the system who should process it further gets an parsing error!
    The simple question is, how can I simple write down string data (containing German special chars, like Öäü --> ISO8859-1 and also XML reserved values like /) through the file adapter without destroying its structure?
    Second, how can I pass dynamically the filename, as using the output header values does not work?
    I hope some specialists are out there.
    Thanks & BR,
    Peter

    Hi James,
    here what I am doing.
    I read some records from the database throught the database adapter. The returned records representing strings, which should be written, line by line separated by 0xA (\n) to a single file.
    Also for the file write we use a Oracle SOA Adapter --> the FileAdapter.
    We discussed quiet some time about opaque schema and native builder. So on my understanding only the native builder version works. Otherwise I get an error, because of the contained slashes in the string record.
    What I am searching for is an easy way for aggregating this database row strings and append it with 0xA (\n).
    With XPath functions, like create-deliminated-string(node, '#xA') I had no success. Adhering to XML the signs #xA should represent 0xA, but it does not work.
    Also in using the encodeLineTerminators &#10; is not working.
    So I had really write a long bpel construct, combined with a Java Code Emeeding to do such a simple thing:
    Here is the interessting part (hiden the while loop, index handling and final fileadapter write call details):
    <while name="While_1"
    condition="($VariableSapBillingJobs > 0) and ($VariableIndex &lt;= $VariableSapBillingJobs)">
    <sequence name="Sequence_4">
    <sequence name="Sequence_4">
    <assign name="Assign">
    <copy>
    <from expression="concat(bpws:getVariableData('VariableBuffer'), bpws:getVariableData('InvokeSapDataSelection_eBillingSapDB4Select_OutputVariable','eBillingSapDB4SelectOutputCollection','/ns8:eBillingSapDB4SelectOutputCollection/ns8:eBillingSapDB4SelectOutput[$VariableIndex]/ns8:LINE'))"/>
    <to variable="VariableBuffer"/>
    </copy>
    </assign>
    *<bpelx:exec name="JavaAppendCRLF" language="java"*
    version="1.5">
    <![CDATA[String buffer = (String)getVariableData("VariableBuffer");    
    buffer += "\n";     
    setVariableData("VariableBuffer", buffer);]]>
    </bpelx:exec>
    <assign name="AggregateStructure">
    <copy>
    <from expression="$VariableIndex + 1"/>
    <to variable="VariableIndex"/>
    </copy>
    </assign>
    </sequence>
    </sequence>
    </while>
    There must be a simpler way like that!
    Do you or somebody else a simpler way? Doing it with the FileAdapter native builder, or at least with a XPath function?
    Furthermore my next homework is, the inverse operation. I will read a file, this time terminated with 0xD 0xA, and must translate it to XML to use it further in my bpel process.
    Also here I have not the idea, where the fileadapter supports me.
    Thanks & BR,
    Peter

  • Inserting dynamic image doesn't work for range of records

    Hi,
    I'm using BI Publisher 5.6.3 and E-business Suite 12.1.3.
    I have set up my RTF template so that it brings in a logo image dynamically onto an invoice.
    The code in the "alt text" field behind my dummy image is: url:{concat('${OA_MEDIA}/',//CF_LOGO)} 
    The image is within a repeating loop that loops around the invoices chosen.
    It works fine if I run the concurrent request for a single invoice - the correct logo image is shown.
    However if I run the concurrent request for a range of invoices which should contain a mixture of both logos it doesn't work and prints the same logo for each invoice regardless of what it should be displaying.
    For testing purposes I also output the name of the image, field CF_LOGO (which is calculated in a formula in the RDF file) just before the actual image, and this always displays the correct value even for a range of invoices. As you can see above this is the field that I include in the code to obtain the image.
    Does anyone have any idea why a range of invoices will only display one logo image?
    Many thanks for any suggestions.
    Regards,
    Hazel

    It's a bug in MDM 5.5 SP04.  The fix is in MDM 5.5 SP05.

  • Demlo - A dynamic and extensible music library organizer (in pure Lua)

    Demlo organizes your music library automatically and dynamically. It runs a chain of user-defined scripts using variables such as tags and file properties. This way it yields virtually unlimited customization power to the user.
    Use case
    As an example, consider a music library that is a a perfect definition of chaos:
    No folder structure.
    Tags are not homogeneous, some entries are filled, other not, it varies from file to file.
    Some files have bad audio quality.
    Audio codecs are not always the same. Some file are CBR/VBR, lossless/lossy, ...
    mp3's ID3 tags are a nightmare.
    Covers are sometimes embedded in tags, others are of terrible quality.
    Features
    A few scripts are already provided and they give a good example of what you can do. You can choose to use them, to rewrite them, or to write a new script from scratch. You can preview changes, and once you are done you call the program over you music library, it will process everything in one single run!
    Scripts can be chained: this feature makes Demlo extremely flexible and powerful!
    Move all files according to a unique, yet dynamic folder hierarchy. For
    instance, setting
    output.filename = table.concat {library, '/', o.artist, '/',
                     not empty (o.album) and (empty (o.date) and o.album .. '/' or o.date .. ' - ' .. o.album .. '/') or '',
                     empty (track_padded) and '' or track_padded .. ' - ',
                     o.title}
    will move "john doe - 1. intro.ogg" to
    "/home/$USER/music/John Doe/2013 - Great Album/01 - Intro.ogg" if there is an album and a date,
    "/home/$USER/music/John Doe/Great Album/01 - Intro.ogg" if there is an album and no date,
    "/home/$USER/music/John Doe/01 - Intro.ogg" if there is no album.
    Case checking: a powerful script that will turn everything to title case. It supports special cases such as Roman numerals, McDonald, etc. It also supports a list of exceptions (e.g. AC-DC, DJ, feat., etc.).
    Encoding: you can conditionally re-encode you files, so you can choose to only re-encode files with some particular encoding settings. You can set the desired bitrate, etc.
    Covers: automatically remove embedded covers, remove duplicates, remove files beyond/below a quality threshold, etc.
    Different kinds of music: classical, OST, and band songs have usually different kinds of tags and folder structures. You can manage different audio libraries easily by setting the corresponding "library" variables.
    Edit tags of a file set with your favorite text editor.
    Support for cue sheets. (Both external and embedded.)
    Demlo can be interfaced with any other program, both ways. (X calls Demlo or Demlo calls X.)
    MusicBrainz support for online tagging and cover fetching.
    Technical characteristics
    This program is completely written in Lua. Its only major dependency is FFmpeg. A few Lua modules are required, which should not eat more than a few KiB on your drive. This leads to a lightweight codebase for a portable and extensible program.
    Dependencies
    ffmpeg
    lua (>= 5.1)
    lua-dkjson
    lua-filesystem
    lua-llthreads2
    lua-penlight
    lua-socket
    slnunicode
    chromaprint (optional)
    History
    This program is based on Musish by the same author.
    The original program was written in POSIX shell but suffured from many limitations as well as performance issues. It was rewritten in Lua to circumvent all those issues while applying minor changes to the CLI options and to the variable names. The syntax of the script changed to Lua as well. Here follows a list of major changes:
    Traversing folders recursively is no longer a security issue.
    Overall performance got boosted by a factor of approx. 2.
    Scripts and configuration files are sandboxed, which means they can no longer contain harmful code. However it is no longer possible to chain scripts.
    All tags are processed dynamically, no more hard-coded tags.
    Links
    Official web page
    Arch Wiki
    AUR package
    Issue tracker: Please file bug reports there thanks!
    Last edited by Ambrevar (2015-02-20 09:22:22)

     I hoped the structure I presented was clear enough. No, all/majority of tags would be a little too much, but genre, different release types, file types and some other basic distinctions, yes and tagsfs will probably help with that. There are special folders like [Compilation], [High Voltage SID Collection] and probably others in the future, maybe with help of tagsfs. Compilations and Artists are prepended by the leading letter of 'sorted artists/albums' level. Then albums/artists are sorted/presented in the manner visible in the Picard script:
    $if($eq(%compilation%,1),
    %COMPILATION%///%FIRSTLETTER%///$if2(%ALBUM%,%NONALBUMTRACKS%,[Other]) - $if(%DATE%,[%DATE%],),
    %FIRSTLETTER%///$trim($if2(%ALBUMARTIST%,%ARTIST%),.)///$if(%DATE%,%DATE% - ,)$if2(%ALBUM%,%NONALBUMTRACKS%,[Other]) )
    $if(%RELEASETYPE%,[%RELEASETYPE%],)%BARCODE%$if(%INCOMPLETE%,[%INCOMPLETE%],)[%EXT%]///
    $if(%DISCNUMBER%,%DISCNUMBER%-,)%TRACKNUMBER%. %ARTIST% - %TITLE%
     Picard has preview examples, so copying the whole script into file naming script under options should make this definitely clear.
    Ambrevar wrote:Thinking about it, a similar feature is provided by most library managers where you can choose filters and tree structure and so on. It remains virtual though, it does not touch the filesystem. Is it really necessary to you to have that sort of view directly on your filesystem? The problem of the filesystem view seems very complex to me.
    Not all devices provide that capability. It is more pleasant to work with that approach than previous structures I used, remember that I can restructure the whole library at any time and probably copy the local one elsewhere using the new structure, but I have not looked into that yet.
     We probably have very different experiences, I see this as very comfortable and convenient. Before that I had been using folders for different file types in the main directory, but it ended up with so many entries for FLAC and MP3, that parsing that directories in a player or any maintenance using a file browser/terminal was too troublesome/slow. So I reduced the number of files, by using the alphabet and additional characters as sorting mechanism. And since that was one step away from separating compilations from albums/single releases, I did that also. Now I can access the whole library very quickly, even when one or two additional characters need to be typed.
    Ambrevar wrote:Furthermore, would you consider this to be an automated task or a manual one? Using your example, how can a program know that Lauge & Baba Gnohm is both Lauge and Baba Gnohm if no tags says so?
     Both, I want as always full control. MusicBrainz [database] relations.
    Ambrevar wrote:Hard links do not work for folders.
    Symlinks cause problems with most file browsers that do not follow them during copying.
     I do not recall writing they should link folders, the directory structure would have to be [re]build and then files [hard/sym]linked, which might pose a maintenance issue, although deleting links and empty directories not really, but "leftovers" like covers could block cleaning. *The only file browser* I would recommend is Proto from a very friendly Polish programmer named Mieszko Lassota, but it is, or at least was last time I checked, Windows only and slowly further developed, although still kills every mc, mucommander and ranger on sight, that is how I remember it. SpaceFM is bearable, but I still only use rsync to copy files and see no point using anything else.
    Ambrevar wrote:Can you elaborate on this? What are the limitations of Picard beyond symlinking? It could be interesting to know what feature you would like.
     The recursive/linking aspect it the main point here. I hope this is not too big of a disappointment. Having too long names has also been a problem in few cases, classical music if I recall correctly, but those are limitations of the file system, however even that could be overcome with Picard, but the code would not be as easily readable as it is now. The question would be what should be abbreviated/priorities, what to do when after abbreviation the directory/file names are still too long and so on. I had to do it by hand these few times. Picard does not handle covers/images well in my experience, but I used something else for that, puddletag I think. I would have to continue to organize the library to remember.
     Furthermore, not all media players/organizers do have the capability to get exactly this structure with formatting, leading letters and distinction between compilations and albums being two examples. Browsing this robust file structure with ncmpcpp is very efficient, I almost never use the library view. As long as a media player has the browsing capability, I have the same view/behavior. And other hardware also works without issues. Yes, it basically comes down to having the file system do, what media players should, however with a few exceptions I had only positive results for more than almost two years now. Do you now see benefits of having that file structure?
     Again I will take a look at your tool, when I find some time and what progandy suggested also of course. How do you save your music on the file system?
    Edit: Style. Clarification.
    Last edited by emeres (2014-09-12 13:02:34)

  • Problem with Dynamic Configuration in XSLT mapping..!!

    Hi friends,
    Working first time with xslt map.I am doing a Idoc to File scenario in which I need to pass Idoc number as the file name dynamically. Right now I am just trying to send some constant value 'ABCD' to go in dynamic attribute filename.
    I used the code which has been provided over here.
    [http://help.sap.com/saphelp_nw04/helpdata/en/43/03fe1bdc7821ade10000000a1553f6/frameset.htm|http://help.sap.com/saphelp_nw04/helpdata/en/43/03fe1bdc7821ade10000000a1553f6/frameset.htm]
    I just changed the "Directory" with "FileName" in the code. It is not generating the dynamic attribute http://sap.com/xi/XI/System/File
    This is my xsl code. Please suggest me If iam doing anything wrong.
    <?xml version="1.0" encoding="utf-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:map="java:java.util.Map" xmlns:dyn="java:com.sap.aii.mapping.api.DynamicConfiguration" xmlns:key="java:com.sap.aii.mapping.api.DynamicConfigurationKey">
         <xsl:output indent="no"/>
         *<xsl:param name="inputparam" select = "ABCD"/>*
         <xsl:output method="text" encoding="utf-8"/>
         <xsl:template match="/">
              <!-- change dynamic configuration -->
              <xsl:variable name="dynamic-conf" select="map:get($inputparam, 'DynamicConfiguration')"/>
              *<xsl:variable name="dynamic-key" select="key:create('http://sap.com/xi/XI/System/File', 'FileName')"/>*
              <xsl:variable name="dynamic-value" select="dyn:get($dynamic-conf, $dynamic-key)"/>
              <xsl:variable name="new-value" select="concat($dynamic-value, 'subfolder\')"/>
              <xsl:variable name="dummy" select="dyn:put($dynamic-conf, $dynamic-key, $new-value)"/>
              <!-- copy payload -->
              <xsl:copy-of select="."/>
         </xsl:template>
         <xsl:template match="/">
    Waiting for your answers.
    Thank you.
    Deepthi.

    Hi Stefen,
    I tried the way you suggest but still I couldn't able to see the Dynamic Configuration attribute in SOAP document. I tried for Idoc number and even tried by passing just a value 'abcd' like below.
    <?xml version="1.0" encoding="utf-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:map="java:java.util.Map" xmlns:dyn="java:com.sap.aii.mapping.api.DynamicConfiguration" xmlns:key="java:com.sap.aii.mapping.api.DynamicConfigurationKey">
         <xsl:output indent="no"/>
         <xsl:output method="text" encoding="utf-8"/>
         *<xsl:param name="inputparam"/>*
                    *<xsl:param name="new-value">*
      *<xsl:value-of select="/WMMBID01/IDOC/EDI_DC40/DOCNUM" />*
      *</xsl:param>*     
         <xsl:template match="/">
              <!-- change dynamic configuration -->
              <xsl:variable name="dynamic-conf" select="map:get($inputparam, 'DynamicConfiguration')"/>
              <xsl:variable name="dynamic-key" select="key:create('http://sap.com/xi/XI/System/File', 'FileName')"/>
              <xsl:variable name="dummy" select="dyn:put($dynamic-conf, $dynamic-key, $new-value)"/>
    <?xml version="1.0" encoding="utf-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:map="java:java.util.Map" xmlns:dyn="java:com.sap.aii.mapping.api.DynamicConfiguration" xmlns:key="java:com.sap.aii.mapping.api.DynamicConfigurationKey">
         <xsl:output indent="no"/>
         <xsl:output method="text" encoding="utf-8"/>
         *<xsl:param name="inputparam"/>*
                    *<xsl:param name="new-value" select="abcd">*
       *</xsl:param>*     
         <xsl:template match="/">
              <!-- change dynamic configuration -->
              <xsl:variable name="dynamic-conf" select="map:get($inputparam, 'DynamicConfiguration')"/>
              <xsl:variable name="dynamic-key" select="key:create('http://sap.com/xi/XI/System/File', 'FileName')"/>
              <xsl:variable name="dummy" select="dyn:put($dynamic-conf, $dynamic-key, $new-value)"/>
    Any suggestions please.
    Thanks
    Deepthi.

  • Generate target filename dynamically / Receiver File Adapter

    Hi Community Members,
    First of all I would like to say hello to everybody, as this is my first post in this forum.
    I start with PI and would like to prepare a simple DEBMAS -> .csv interface.
    In fact it is already done, but the requirement is to name .csv files according to customer number (KUNNR).
    Hence is my question ... how to set CC to be assigning KUNNRs to file names? (like 123456.csv)
    From what I can in the net people are using ASMA, but isn't there any simpler solution?
    What I tried inside message mapping was to bound KUNNR field from my source message to root element of target message.
    In addition I also set Field Name Scheme to *.csv in CC settings. Unfortunately I am receiving a CC error
    The parameter "argument" has the value "/interfaces/PI/inbound/test/.csv", so it contains the character "/interfaces/PI/inbound/test/.csv" which is not allowed
    But anyway if I would like to use ASMA I see I need to write a Java funciton as UDF.
    Example tutorial [http://www.****************/Tips/XI/ASMA/Index.htm]
    But what next? How would I implement it into message mapping, to which xml element should it be assigned and what should be passed as function input, to make java function work?
    Regards,
    bob

    hI bobens ,
    you have to follw bellow steps  because dynamicalluy we had call file name as same as your requirement.
    STEP1:  WRITE dynamic configuratio:
    Public String DynamicConfig(String a, Container container) throws StreamTransformationException{
    DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File","FileName");
    conf.put(key,a);
    return "";
    step2: in mapping
    KUNNR + constant(.CSV) -> Concat -> udf(dynamic configuration) -> target root node
    Configuration objects:
    3. Receiver communication channel:
    file name : ConfiguredDynamically
    in Adavnce mode :
    you have to enable these check boxes: use asma , fail  if asma,  filename.
    thanks,

Maybe you are looking for