File receiver - xml beautifier
Hi experts,
I have a simple Idoc2File scenario where the resulting file contains all the xml content in a single line.
Is there a way to get it in a nice intended format? (xml beautifier functionality)
many thanks
ok, I managed to solve it with xslt mapping:
I imported the following xsl into IR and added a second msg mapping in the interface mapping:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Author: Gábor Hornyák -->
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<!-- copy payload -->
<xsl:copy-of select="." />
</xsl:template>
</xsl:stylesheet>
Similar Messages
-
How to create an Excel file from XML in the Receiver File Adapter Comm Ch
How do I create an Excel file from XML in the Receiver File Adapter Communication Channel? I have my mapping done and I am outputting the file as a comma delimited csv file. However, the target can only process an Excel file (.xls). How can I generate an Excel in XI?
I saw this blog, but I don't know how to create a XSLT transformation.
/people/michal.krawczyk2/blog/2005/12/10/xi-generating-excel-files-without-the-java-nor-the-conversion-agent-not-possible
Any help would be appreciated. Thanks.Here are the steps I took to create an XSLT transformation in XI 3.0:
1. I created my source and target XSDs using XMLSpy.
2. I created the XSLT mapping from source to target in XMLSpy (referencing the souce XSD schema).
3. I created another XSLT mapping to format the target into Excel XML.
4. Import the source and target XSDs in the IR's External Definitions
5. Zip each XSLT mapping (.xls) and import it into the IR's Imported Archives
6. Reference the XSL mappings in the Interface Mapping -
Xml file in dynamic file name in file receiver adapter
Hi,
I'm doing the dynamic file name in file receiver adapter. I have done as per instructed in /people/jayakrishnan.nair/blog/2005/06/20/dynamic-file-name-using-xi-30-sp12-part--i
All turned out okay. I have got the file name I require. Except that the file format is XML and I need to suppress the filename node occupied by the dynamic file name.
The content conversion mentioned in /people/sravya.talanki2/blog/2005/08/11/solution-to-the-problem-encountered-using-variable-substitution-with-xi-sp12, does not seem to solve my problem. As it is only for file format other than the XML one, because we only do the content conversion if we want to "convert" the format of the content from XML to the other format.
Does anybody have the solution to my problem? thanks in advanceThank you Raj for the direction
The way to do it is :
1. In ID, advanced tab, put a check on the adapter-specific message attributes - file name.
2. Put a "*" on the file name scheme
3. In IR, create a UDF to set up target file name :
DynamicConfiguration conf = (DynamicConfiguration) container
.getTransformationParameters()
.get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File","FileName");
// set up file name for receiver adapter
String SourceFileName = conf.get(key);
conf.put(key, TargetFileName);
return " ";
4. Map the above UDF to the header level of the target structure.
Regards,
Idi -
How send and receive XML file from PI 7.0 via SSL
Hello experts,
Can you point to some documentation , examples , links where I can get some information on how to send and receive XML files using PI 7.0 via SSL ?
Thanks in advance.Hi,
refer to the following links.
Enabling SSL
http://help.sap.com/saphelp_nwpi71/helpdata/en/14/ef2940cbf2195de10000000a1550b0/content.htm
Adapter specific security
http://help.sap.com/saphelp_nwpi71/helpdata/en/f5/799add57aeee4f889265094a04695c/frameset.htm
regards,
MIlan Thaker. -
Decrypt and unzip a File + read a XML file received into the ZIP
Hello,
I need your help to develop some a complex Biztalk application.
Here're my needs :
Our Busness partner send us a zip file cripted with a standard PGP(Pretty Goof Privacy).
The zip containts an XML file that i have to deal it, and some attachments file(PDF).
So i need to know what's the best approach for the developpement of my application.
I want to decrypt the ZIP and then Unzip the file and them read the XML file received in the zip.
Knowimg that we already have the pipeline compenent to dectypt the file with the strandar PGP and an other pipeline compenent to unzip the File.
Thank youHi ,
Try this code to unzip the file and send the xml message .If u face issue let me know
namespace BizTalk.Pipeline.Component.DisUnzip
using System;
using System.IO;
using System.Text;
using System.Drawing;
using System.Resources;
using System.Reflection;
using System.Diagnostics;
using System.Collections;
using System.ComponentModel;
using Microsoft.BizTalk.Message.Interop;
using Microsoft.BizTalk.Component.Interop;
using Microsoft.BizTalk.Component;
using Microsoft.BizTalk.Messaging;
using Ionic.Zip;
using System.IO.Compression;
[ComponentCategory(CategoryTypes.CATID_PipelineComponent)]
[System.Runtime.InteropServices.Guid("8bef7aa9-5da5-4d62-ac5b-03af2fb9d280")]
[ComponentCategory(CategoryTypes.CATID_DisassemblingParser)]
public class DisUnzip : Microsoft.BizTalk.Component.Interop.IDisassemblerComponent, IBaseComponent, IPersistPropertyBag, IComponentUI
private System.Resources.ResourceManager resourceManager = new System.Resources.ResourceManager("BizTalk.Pipeline.Component.DisUnzip.DisUnzip", Assembly.GetExecutingAssembly());
#region IBaseComponent members
/// <summary>
/// Name of the component
/// </summary>
[Browsable(false)]
public string Name
get
return resourceManager.GetString("COMPONENTNAME", System.Globalization.CultureInfo.InvariantCulture);
/// <summary>
/// Version of the component
/// </summary>
[Browsable(false)]
public string Version
get
return resourceManager.GetString("COMPONENTVERSION", System.Globalization.CultureInfo.InvariantCulture);
/// <summary>
/// Description of the component
/// </summary>
[Browsable(false)]
public string Description
get
return resourceManager.GetString("COMPONENTDESCRIPTION", System.Globalization.CultureInfo.InvariantCulture);
#endregion
#region IPersistPropertyBag members
/// <summary>
/// Gets class ID of component for usage from unmanaged code.
/// </summary>
/// <param name="classid">
/// Class ID of the component
/// </param>
public void GetClassID(out System.Guid classid)
classid = new System.Guid("8bef7aa9-5da5-4d62-ac5b-03af2fb9d280");
/// <summary>
/// not implemented
/// </summary>
public void InitNew()
/// <summary>
/// Loads configuration properties for the component
/// </summary>
/// <param name="pb">Configuration property bag</param>
/// <param name="errlog">Error status</param>
public virtual void Load(Microsoft.BizTalk.Component.Interop.IPropertyBag pb, int errlog)
/// <summary>
/// Saves the current component configuration into the property bag
/// </summary>
/// <param name="pb">Configuration property bag</param>
/// <param name="fClearDirty">not used</param>
/// <param name="fSaveAllProperties">not used</param>
public virtual void Save(Microsoft.BizTalk.Component.Interop.IPropertyBag pb, bool fClearDirty, bool fSaveAllProperties)
#region utility functionality
/// <summary>
/// Reads property value from property bag
/// </summary>
/// <param name="pb">Property bag</param>
/// <param name="propName">Name of property</param>
/// <returns>Value of the property</returns>
private object ReadPropertyBag(Microsoft.BizTalk.Component.Interop.IPropertyBag pb, string propName)
object val = null;
try
pb.Read(propName, out val, 0);
catch (System.ArgumentException )
return val;
catch (System.Exception e)
throw new System.ApplicationException(e.Message);
return val;
/// <summary>
/// Writes property values into a property bag.
/// </summary>
/// <param name="pb">Property bag.</param>
/// <param name="propName">Name of property.</param>
/// <param name="val">Value of property.</param>
private void WritePropertyBag(Microsoft.BizTalk.Component.Interop.IPropertyBag pb, string propName, object val)
try
pb.Write(propName, ref val);
catch (System.Exception e)
throw new System.ApplicationException(e.Message);
#endregion
#endregion
#region IComponentUI members
/// <summary>
/// Component icon to use in BizTalk Editor
/// </summary>
[Browsable(false)]
public IntPtr Icon
get
return ((System.Drawing.Bitmap)(this.resourceManager.GetObject("COMPONENTICON", System.Globalization.CultureInfo.InvariantCulture))).GetHicon();
/// <summary>
/// The Validate method is called by the BizTalk Editor during the build
/// of a BizTalk project.
/// </summary>
/// <param name="obj">An Object containing the configuration properties.</param>
/// <returns>The IEnumerator enables the caller to enumerate through a collection of strings containing error messages. These error messages appear as compiler error messages. To report successful property validation, the method should return an empty enumerator.</returns>
public System.Collections.IEnumerator Validate(object obj)
// example implementation:
// ArrayList errorList = new ArrayList();
// errorList.Add("This is a compiler error");
// return errorList.GetEnumerator();
return null;
#endregion
/// <summary>
/// this variable will contain any message generated by the Disassemble method
/// </summary>
private System.Collections.Queue _msgs = new System.Collections.Queue();
#region IDisassemblerComponent members
/// <summary>
/// called by the messaging engine until returned null, after disassemble has been called
/// </summary>
/// <param name="pc">the pipeline context</param>
/// <returns>an IBaseMessage instance representing the message created</returns>
public Microsoft.BizTalk.Message.Interop.IBaseMessage
GetNext(Microsoft.BizTalk.Component.Interop.IPipelineContext pc)
// get the next message from the Queue and return it
Microsoft.BizTalk.Message.Interop.IBaseMessage msg = null;
if ((_msgs.Count > 0))
msg = ((Microsoft.BizTalk.Message.Interop.IBaseMessage)(_msgs.Dequeue()));
return msg;
/// <summary>
/// called by the messaging engine when a new message arrives
/// </summary>
/// <param name="pc">the pipeline context</param>
/// <param name="inmsg">the actual message</param>
public void Disassemble(Microsoft.BizTalk.Component.Interop.IPipelineContext pc, Microsoft.BizTalk.Message.Interop.IBaseMessage inmsg)
IBaseMessage Temp = inmsg;
using (ZipFile zip = ZipFile.Read(inmsg.BodyPart.GetOriginalDataStream()))
foreach (ZipEntry e in zip)
var ms = new MemoryStream();
IBaseMessage outMsg;
outMsg = pc.GetMessageFactory().CreateMessage();
outMsg.AddPart("Body", pc.GetMessageFactory().CreateMessagePart(), true);
outMsg.Context=inmsg.Context;
e.Extract(ms);
string XMLMessage = Encoding.UTF8.GetString(ms.ToArray());
MemoryStream mstemp = new System.IO.MemoryStream(
System.Text.Encoding.UTF8.GetBytes(XMLMessage));
outMsg.GetPart("Body").Data = mstemp;
_msgs.Enqueue(outMsg);
#endregion
Thanks
Abhishek -
XML-IDOC to Plain File: File Receiver Cnt Conversion Problem Nested Stucts
Hi all,
I have an IDOC-XI-File scenario and I have a problem with the file receiver adapter and the content conversion parameters when the final data type has nested structures. Imagine that I have something similar to the following:
My desire is to get something similar to this in the output file:
SEGMENT0;HEADER
SEGMENT1;100
SEGMENT2;0200000716
SEGMENT3;1000
SEGMENT2;0200000717
SEGMENT3;1000
SEGMENT3;1001
SEGMENT3;1002
But what we are getting is this:
SEGMENT0;HEADER
SEGMENT1;100
SEGMENT2;0200000716;SEGMENT3;1000
SEGMENT2;0200000717;SEGMENT3;1000;SEGMENT3;1001;SEGMENT3;1002
The content conversion parameters of the file receiver are as follow:
Recordset Structure: IDOC,EDI_DC40,E1STATS,Z1HDSTAT,Z1ITSTAT
IDOC.fieldSeparator: ;
IDOC. endSeparator: nl
IDOC. addHeaderLine: 0
EDI_DC40.fieldSeparator: ;
EDI_DC40. endSeparator: nl
EDI_DC40. addHeaderLine: 0
E1STATS.fieldSeparator: ;
E1STATS. endSeparator: nl
E1STATS. addHeaderLine: 0
Z1HDSTAT.fieldSeparator: ;
Z1HDSTAT. endSeparator: nl
Z1HDSTAT. addHeaderLine: 0
Z1ITSTAT.fieldSeparator: ;
Z1ITSTAT. endSeparator: nl
Z1ITSTAT. addHeaderLine: 0
Ive tried to use the parameter beginSeparator=nl for the segments Z1ITSTAT but its not working. I havent been able to find a solution in the other forums. Can anybody help me?
Thanks in advance
Roger Allué VallCan you explain it with my example? I can't see what you mean.
<ZSYSEX01>
.<IDOC BEGIN="1">
....<EDI_DC40 SEGMENT="SEGMENT0">
........<FIELD1>HEADER</FIELD1>
....</EDI_DC40>
....<E1STATS SEGMENT="SEGMENT1">
........<FIELD2>100</MANDT>
........<Z1HDSTAT SEGMENT="SEGMENT2">
...........<FIELD3>0200000716</FIELD3>
...........<Z1ITSTAT SEGMENT="SEGMENT3">
...............<FIELD4>1000</FIELD4>
...........</Z1ITSTAT>
........</Z1HDSTAT>
........<Z1HDSTAT SEGMENT="SEGMENT2">
...........<FIELD3>0200000717</FIELD3>
...........<Z1ITSTAT SEGMENT="SEGMENT3">
...............<FIELD4>1000</FIELD4>
...........</Z1ITSTAT>
...........<Z1ITSTAT SEGMENT="SEGMENT3">
...............<FIELD4>1001</FIELD4>
...........</Z1ITSTAT>
...........<Z1ITSTAT SEGMENT="SEGMENT3">
...............<FIELD4>1002</FIELD4>
...........</Z1ITSTAT>
........</Z1HDSTAT>
....</E1STATS>
.</IDOC>
</ZSYSEX01>
Regards, -
Adapter Module Filename in File Receiver Channel
Hi All,
is it possible to set the Filename in File Receiver Adapter from Adapter Module?
I know that it is possible to read the data
Channel ch = new Channel(moduleContext.getChannelID());
path = ch.getValueAsString("file.targetDir");
I Need to set the filename in Adapter Module, using of Payload is not possible because Payload is not xml.
Dynamic Parameters in Message Header is not possible because it is an multi mapping process an i need dynamic Filename for each Part
payload after mapping is like
MainDocument
SubMainDocument
MainDocument
SubMainDocument
i need special Name for each SubMainDocument in FileReceiverAdapter
regards
ralfHello Stefan,
interface mapping is an mapping like this:
outbound_interface => Inbound_Interface1
=> Inbound_Interface2
=> Inbound_Interface3
in sxmb_moni this looks like this
Soap_Header
Soap_Body
Payloads
=>MainDocument ( application/xml )
=> SubMainDocument ( text/xml )
=>MainDocument ( application/xml )
=> SubMainDocument ( text/xml )
First SubMainElement is routing to FileReceiverAdapeter A where Filename has to be like "NameA%nr%"
second SubMainElement is routing to FileReceiverAdapeter B where Filename has to be like "NameB%nr%"
%nr% is som value from the Payload.
Payload is not xml because using of Conversion Argent!!
I Think there is only one Dynamic in Header for all subelements, i have test it!
ralf -
Create a new web application, how shall I update the file server.xml
Hi,
I will create a new web application, i.e named newApp. Then I create a file structure as follows:
- <server-root>/newApp
- <server-root>/newApp/WEB-INF
- <server-root>/newApp/WEB-INF/classes
Then I must tell the server that I have created a new web application. Then I must update my file server.xml, How shall I do this and where in the file shall I type in the new information?
I use windows XP Pro, and Tomcat 4.1.27.
My server.xml file looks like below:
<!-- Example Server Configuration File -->
<!-- Note that component elements are nested corresponding to their
parent-child relationships with each other -->
<!-- A "Server" is a singleton element that represents the entire JVM,
which may contain one or more "Service" instances. The Server
listens for a shutdown command on the indicated port.
Note: A "Server" is not itself a "Container", so you may not
define subcomponents such as "Valves" or "Loggers" at this level.
-->
<Server port="8005" shutdown="SHUTDOWN" debug="0">
<!-- Comment these entries out to disable JMX MBeans support -->
<!-- You may also configure custom components (e.g. Valves/Realms) by
including your own mbean-descriptor file(s), and setting the
"descriptors" attribute to point to a ';' seperated list of paths
(in the ClassLoader sense) of files to add to the default list.
e.g. descriptors="/com/myfirm/mypackage/mbean-descriptor.xml"
-->
<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"
debug="0"/>
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"
debug="0"/>
<!-- Global JNDI resources -->
<GlobalNamingResources>
<!-- Test entry for demonstration purposes -->
<Environment name="simpleValue" type="java.lang.Integer" value="30"/>
<!-- Editable user database that can also be used by
UserDatabaseRealm to authenticate users -->
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved">
</Resource>
<ResourceParams name="UserDatabase">
<parameter>
<name>factory</name>
<value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
</parameter>
<parameter>
<name>pathname</name>
<value>conf/tomcat-users.xml</value>
</parameter>
</ResourceParams>
</GlobalNamingResources>
<!-- A "Service" is a collection of one or more "Connectors" that share
a single "Container" (and therefore the web applications visible
within that Container). Normally, that Container is an "Engine",
but this is not required.
Note: A "Service" is not itself a "Container", so you may not
define subcomponents such as "Valves" or "Loggers" at this level.
-->
<!-- Define the Tomcat Stand-Alone Service -->
<Service name="Tomcat-Standalone">
<!-- A "Connector" represents an endpoint by which requests are received
and responses are returned. Each Connector passes requests on to the
associated "Container" (normally an Engine) for processing.
By default, a non-SSL HTTP/1.1 Connector is established on port 8080.
You can also enable an SSL HTTP/1.1 Connector on port 8443 by
following the instructions below and uncommenting the second Connector
entry. SSL support requires the following steps (see the SSL Config
HOWTO in the Tomcat 4.0 documentation bundle for more detailed
instructions):
* Download and install JSSE 1.0.2 or later, and put the JAR files
into "$JAVA_HOME/jre/lib/ext".
* Execute:
%JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA (Windows)
$JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA (Unix)
with a password value of "changeit" for both the certificate and
the keystore itself.
By default, DNS lookups are enabled when a web application calls
request.getRemoteHost(). This can have an adverse impact on
performance, so you can disable it by setting the
"enableLookups" attribute to "false". When DNS lookups are disabled,
request.getRemoteHost() will return the String version of the
IP address of the remote client.
-->
<!-- Define a non-SSL Coyote HTTP/1.1 Connector on port 8080 -->
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
port="8080" minProcessors="5" maxProcessors="75"
enableLookups="true" redirectPort="8443"
acceptCount="100" debug="0" connectionTimeout="20000"
useURIValidationHack="false" disableUploadTimeout="true" />
<!-- Note : To disable connection timeouts, set connectionTimeout value
to -1 -->
<!-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 -->
<!--
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
port="8443" minProcessors="5" maxProcessors="75"
enableLookups="true"
acceptCount="100" debug="0" scheme="https" secure="true"
useURIValidationHack="false" disableUploadTimeout="true">
<Factory className="org.apache.coyote.tomcat4.CoyoteServerSocketFactory"
clientAuth="false" protocol="TLS" />
</Connector>
-->
<!-- Define a Coyote/JK2 AJP 1.3 Connector on port 8009 -->
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
port="8009" minProcessors="5" maxProcessors="75"
enableLookups="true" redirectPort="8443"
acceptCount="10" debug="0" connectionTimeout="0"
useURIValidationHack="false"
protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"/>
<!-- Define an AJP 1.3 Connector on port 8009 -->
<!--
<Connector className="org.apache.ajp.tomcat4.Ajp13Connector"
port="8009" minProcessors="5" maxProcessors="75"
acceptCount="10" debug="0"/>
-->
<!-- Define a Proxied HTTP/1.1 Connector on port 8082 -->
<!-- See proxy documentation for more information about using this. -->
<!--
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
port="8082" minProcessors="5" maxProcessors="75"
enableLookups="true"
acceptCount="100" debug="0" connectionTimeout="20000"
proxyPort="80" useURIValidationHack="false"
disableUploadTimeout="true" />
-->
<!-- Define a non-SSL legacy HTTP/1.1 Test Connector on port 8083 -->
<!--
<Connector className="org.apache.catalina.connector.http.HttpConnector"
port="8083" minProcessors="5" maxProcessors="75"
enableLookups="true" redirectPort="8443"
acceptCount="10" debug="0" />
-->
<!-- Define a non-SSL HTTP/1.0 Test Connector on port 8084 -->
<!--
<Connector className="org.apache.catalina.connector.http10.HttpConnector"
port="8084" minProcessors="5" maxProcessors="75"
enableLookups="true" redirectPort="8443"
acceptCount="10" debug="0" />
-->
<!-- An Engine represents the entry point (within Catalina) that processes
every request. The Engine implementation for Tomcat stand alone
analyzes the HTTP headers included with the request, and passes them
on to the appropriate Host (virtual host). -->
<!-- You should set jvmRoute to support load-balancing via JK/JK2 ie :
<Engine name="Standalone" defaultHost="localhost" debug="0" jmvRoute="jvm1">
-->
<!-- Define the top level container in our container hierarchy -->
<Engine name="Standalone" defaultHost="localhost" debug="0">
<!-- The request dumper valve dumps useful debugging information about
the request headers and cookies that were received, and the response
headers and cookies that were sent, for all requests received by
this instance of Tomcat. If you care only about requests to a
particular virtual host, or a particular application, nest this
element inside the corresponding <Host> or <Context> entry instead.
For a similar mechanism that is portable to all Servlet 2.3
containers, check out the "RequestDumperFilter" Filter in the
example application (the source for this filter may be found in
"$CATALINA_HOME/webapps/examples/WEB-INF/classes/filters").
Request dumping is disabled by default. Uncomment the following
element to enable it. -->
<!--
<Valve className="org.apache.catalina.valves.RequestDumperValve"/>
-->
<!-- Global logger unless overridden at lower levels -->
<Logger className="org.apache.catalina.logger.FileLogger"
prefix="catalina_log." suffix=".txt"
timestamp="true"/>
<!-- Because this Realm is here, an instance will be shared globally -->
<!-- This Realm uses the UserDatabase configured in the global JNDI
resources under the key "UserDatabase". Any edits
that are performed against this UserDatabase are immediately
available for use by the Realm. -->
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
debug="0" resourceName="UserDatabase"/>
<!-- Comment out the old realm but leave here for now in case we
need to go back quickly -->
<!--
<Realm className="org.apache.catalina.realm.MemoryRealm" />
-->
<!-- Replace the above Realm with one of the following to get a Realm
stored in a database and accessed via JDBC -->
<!--
<Realm className="org.apache.catalina.realm.JDBCRealm" debug="99"
driverName="org.gjt.mm.mysql.Driver"
connectionURL="jdbc:mysql://localhost/authority"
connectionName="test" connectionPassword="test"
userTable="users" userNameCol="user_name" userCredCol="user_pass"
userRoleTable="user_roles" roleNameCol="role_name" />
-->
<!--
<Realm className="org.apache.catalina.realm.JDBCRealm" debug="99"
driverName="oracle.jdbc.driver.OracleDriver"
connectionURL="jdbc:oracle:thin:@ntserver:1521:ORCL"
connectionName="scott" connectionPassword="tiger"
userTable="users" userNameCol="user_name" userCredCol="user_pass"
userRoleTable="user_roles" roleNameCol="role_name" />
-->
<!--
<Realm className="org.apache.catalina.realm.JDBCRealm" debug="99"
driverName="sun.jdbc.odbc.JdbcOdbcDriver"
connectionURL="jdbc:odbc:CATALINA"
userTable="users" userNameCol="user_name" userCredCol="user_pass"
userRoleTable="user_roles" roleNameCol="role_name" />
-->
<!-- Define the default virtual host -->
<Host name="localhost" debug="0" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<!-- Normally, users must authenticate themselves to each web app
individually. Uncomment the following entry if you would like
a user to be authenticated the first time they encounter a
resource protected by a security constraint, and then have that
user identity maintained across all web applications contained
in this virtual host. -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn"
debug="0"/>
-->
<!-- Access log processes all requests for this virtual host. By
default, log files are created in the "logs" directory relative to
$CATALINA_HOME. If you wish, you can specify a different
directory with the "directory" attribute. Specify either a relative
(to $CATALINA_HOME) or absolute path to the desired directory.
-->
<!--
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" prefix="localhost_access_log." suffix=".txt"
pattern="common" resolveHosts="false"/>
-->
<!-- Logger shared by all Contexts related to this virtual host. By
default (when using FileLogger), log files are created in the "logs"
directory relative to $CATALINA_HOME. If you wish, you can specify
a different directory with the "directory" attribute. Specify either a
relative (to $CATALINA_HOME) or absolute path to the desired
directory.-->
<Logger className="org.apache.catalina.logger.FileLogger"
directory="logs" prefix="localhost_log." suffix=".txt"
timestamp="true"/>
<!-- Define properties for each web application. This is only needed
if you want to set non-default properties, or have web application
document roots in places other than the virtual host's appBase
directory. -->
<DefaultContext reloadable="true"/>
<!-- Tomcat Root Context -->
<Context path="" docBase="ROOT" debug="0"/>
<!-- Tomcat Examples Context -->
<Context path="/examples" docBase="examples" debug="0"
reloadable="true" crossContext="true">
<Logger className="org.apache.catalina.logger.FileLogger"
prefix="localhost_examples_log." suffix=".txt"
timestamp="true"/>
<Ejb name="ejb/EmplRecord" type="Entity"
home="com.wombat.empl.EmployeeRecordHome"
remote="com.wombat.empl.EmployeeRecord"/>
<!-- If you wanted the examples app to be able to edit the
user database, you would uncomment the following entry.
Of course, you would want to enable security on the
application as well, so this is not done by default!
The database object could be accessed like this:
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
UserDatabase database =
(UserDatabase) envCtx.lookup("userDatabase");
-->
<!--
<ResourceLink name="userDatabase" global="UserDatabase"
type="org.apache.catalina.UserDatabase"/>
-->
<!-- PersistentManager: Uncomment the section below to test Persistent
Sessions.
saveOnRestart: If true, all active sessions will be saved
to the Store when Catalina is shutdown, regardless of
other settings. All Sessions found in the Store will be
loaded on startup. Sessions past their expiration are
ignored in both cases.
maxActiveSessions: If 0 or greater, having too many active
sessions will result in some being swapped out. minIdleSwap
limits this. -1 or 0 means unlimited sessions are allowed.
If it is not possible to swap sessions new sessions will
be rejected.
This avoids thrashing when the site is highly active.
minIdleSwap: Sessions must be idle for at least this long
(in seconds) before they will be swapped out due to
activity.
0 means sessions will almost always be swapped out after
use - this will be noticeably slow for your users.
maxIdleSwap: Sessions will be swapped out if idle for this
long (in seconds). If minIdleSwap is higher, then it will
override this. This isn't exact: it is checked periodically.
-1 means sessions won't be swapped out for this reason,
although they may be swapped out for maxActiveSessions.
If set to >= 0, guarantees that all sessions found in the
Store will be loaded on startup.
maxIdleBackup: Sessions will be backed up (saved to the Store,
but left in active memory) if idle for this long (in seconds),
and all sessions found in the Store will be loaded on startup.
If set to -1 sessions will not be backed up, 0 means they
should be backed up shortly after being used.
To clear sessions from the Store, set maxActiveSessions, maxIdleSwap,
and minIdleBackup all to -1, saveOnRestart to false, then restart
Catalina.
-->
<!--
<Manager className="org.apache.catalina.session.PersistentManager"
debug="0"
saveOnRestart="true"
maxActiveSessions="-1"
minIdleSwap="-1"
maxIdleSwap="-1"
maxIdleBackup="-1">
<Store className="org.apache.catalina.session.FileStore"/>
</Manager>
-->
<Environment name="maxExemptions" type="java.lang.Integer"
value="15"/>
<Parameter name="context.param.name" value="context.param.value"
override="false"/>
<Resource name="jdbc/EmployeeAppDb" auth="SERVLET"
type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/EmployeeAppDb">
<parameter><name>username</name><value>sa</value></parameter>
<parameter><name>password</name><value></value></parameter>
<parameter><name>driverClassName</name>
<value>org.hsql.jdbcDriver</value></parameter>
<parameter><name>url</name>
<value>jdbc:HypersonicSQL:database</value></parameter>
</ResourceParams>
<Resource name="mail/Session" auth="Container"
type="javax.mail.Session"/>
<ResourceParams name="mail/Session">
<parameter>
<name>mail.smtp.host</name>
<value>localhost</value>
</parameter>
</ResourceParams>
<ResourceLink name="linkToGlobalResource"
global="simpleValue"
type="java.lang.Integer"/>
</Context>
</Host>
</Engine>
</Service>
</Server>To use servlets u have indeed to update your web.xml...Well I'm not sure this is relevant to your case anyway.
You have to add a <servlet> element to this file.
Something like this:
<servlet>
<servlet-name>blabla</servlet-name>
<servlet-class>blablapackage.Blablaclass</servlet-class>
<init-param>...</init-param>
</servlet>
Now this may not solve your problem. Make sure you refer to your servlets using their full qualified names.btw, just to be sure, what is your definition of "servlet"? (i mean: any java class or only javax.servlet.Servlet) -
Content Conversion Parameter in File Receiver Adapter
Hi all,
I have created one File Receiver Adapter with Message Protocol 'File Content Conversion' and with the following configuration:
Recordset Structure: Message
Message.fieldFixedLengths: 1000
My Message Type is:
LogErro_MT
Message (Type: String) (Occurrence: 0..Unbounded) (Details: Min,Max Length: 1000)
But the file created by it has no data inside it. If I change the Message Protocol to 'File', the content of the file is the XML generated by the Outbound Proxy.
Would someone can help me?
Thanks in advance
LeoHi,
Please create a data type with
Records
Message ---0..unbounded
and hten MT for the same.
In the receiver file adapter:
Recordset Structure: Message
Message.fieldFixedLengths: 1000
Please check this weblog for the same:
/people/shabarish.vijayakumar/blog/2006/04/03/xi-in-the-role-of-a-ftp
IS this what you are trying to do.
Regards
Vijaya -
Com.sap.sql.DuplicateKeyException in file receiver channel
Hi experts,
I am currently testing the following scenario:
xml file -> file sender ->file receiver -> csv file
No mapping is used. Both channels are on the same PI 7.1 system.
The transformation seems to work so far. The only problem I have is that my receiver channel does not post the message to the directory because of this error:
Delivering the message to the application using connection File_http://sap.com/xi/XI/System failed, due to: com.sap.engine.interfaces.messaging.api.exception.DuplicateMessageException: Message Id f167e134-145e-4b2c-2d47-e431b8b34fd8(INBOUND) already exists in duplicate check table: com.sap.sql.DuplicateKeyException: [200]: Duplicate key.
Is it not possible to use file sender and file receiver in the same scenario? Thanks for any help.
Best regards.
Oliver.Hi André,
I am using the test option so the message can be processed multiple times. Anyway, I also tried using deletion but I still get the same error. I also tried a completely new file but still no change. When I check the comm channel I see that there is always created a new message id and when I search the rwb it posts two entries. One from the sender step and one from the receiver step. Seems to be alright to me.
Regards.
Oliver. -
Problem with Append mode in File Receiver
Hello,
I am facing some problem with Append Mode in File Receiver.
In channel config, i have given :
Construction Mode : Append
File Type : Text
Message Protocol : File Content Conversion
The size of the file which i am trying to send is about 9.5MB.
I got this error,
"Recovering from loss of connection to database; message
loaded into queue by recover job: System Job (Failover Recovery)".
So, it would seem that there was a loss of connnection to the database
while the file was being written.
Note - XI successfully recovered from the connection loss and
successfully wrote the file, however since the communication channel
was set to append, it appended to the partial file that was written
before the database connection loss. This is not correct. The file
should have been overwritten after the recovery even though the communication
channel was configured to append.
Can anyone help me on this regard.
Thanks,
Soorya.Hi Venkat,
I would suggest u to split the file in to chunks if u face any problem in processing at a time in append mode and also
Memory Requirements are must 4 processing huge files:
Q: Which memory requirements does the File Adapter have? Is there a restriction on the maximum file size it can process?
A: The maximum file size that can be processed by the File Adapter depends on a number of factors:
o The most important one is the size of the Java heap, which is shared among all messages processed at a certain point in time. In order to be able to process larger messages without an out of memory error (OOM), it is recommended to increase the size of the available Java heap and/or to reduce the concurrency in the system so that fewer messages are processed in parallel.
o Another factor negatively influencing the maximum message size in releases up to and including XI 3.0 SP 13 is an enabled charcter set (encoding) conversion if the message type is set to "Text".
o Using the transport protocol "File Transfer Protocol (FTP)" also uses more memory for processing than the transport protocol "File System (NFS)" (up to and including XI 3.0 SP 13).
o If the Message Protocol "File Content Conversion" is used in a File Sender channel, consider that not only the size of the input file affects the File Adapter's memory usage, but even more the size of the XML resulting from the conversion, which is usually a few factors larger than the original plain text file.
To reduce the memory consumption in this scenario, consider configuring the setting "Maximum Recordsets per Message" for the sender channel. This will cause the input file to be split into multiple smaller mesages.
Plz do refer the following links:
U may plan the availability of ur communication channel using "Planning Availability Times" feature
http://help.sap.com/saphelp_nw04/helpdata/en/45/06bd029da31122e10000000a11466f/frameset.htm
/people/sravya.talanki2/blog/2005/11/29/night-mare-processing-huge-files-in-sap-xi
hi check the below links for reference
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/10748ef7-b2f0-2910-7cb8-c81e7f284af5
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/7086f109-aaa7-2a10-0cb5-f69bd2affd2b
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/2498bf90-0201-0010-4884-83568752a857
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/cc1ec146-0a01-0010-90a9-b1df1d2f346f
Regards,
Vinod. -
B2b unable to pick the file from xml gateway
Hi All,
I am taking a scenario where B2B picks the files from xml gateway and drop the files in FTP folder. I modified the XML gateway inbound and outbound, i has given my user credentials(unmae, host ,pwd ,sid, port). In agreement in the place of internal delivery channel i has given XML gateway outbound.
Still its unable to pick the files from xml gateway.
Clarify my understanding please
While b2b picks the files from xml gateway, It will pick from ECX_Inbound or ECX_Outbound?
Here i am attaching the logs:
2010.01.15 at 07:32:51:101: B2BStarter thread: B2B - (DEBUG) B2BStarter - Context Initialized
2010.01.15 at 07:32:56:366: B2BStarter thread: B2B - (DEBUG) B2BStarter - Start B2B
2010.01.15 at 07:32:56:369: B2BStarter thread: B2B - (DEBUG) B2BStarter - Starting B2B
2010.01.15 at 07:32:56:392: B2BStarter thread: B2B - (DEBUG) B2BStarter - configuration obtained
2010.01.15 at 07:32:56:395: B2BStarter thread: B2B - (DEBUG) B2BStarter - clear global cache
2010.01.15 at 07:32:56:547: B2BStarter thread: B2B - (DEBUG) XEngine not running. So no need to clear cached objects inside XEngine.
2010.01.15 at 07:32:56:821: B2BStarter thread: B2B - (INFORMATION) Repository:print: [0] HL7 over MLLP Exchange
2010.01.15 at 07:32:56:824: B2BStarter thread: B2B - (INFORMATION) Repository:print: [1] EDI X12 over AS1
2010.01.15 at 07:32:56:826: B2BStarter thread: B2B - (INFORMATION) Repository:print: [2] Custom Document over Generic Exchange
2010.01.15 at 07:32:56:829: B2BStarter thread: B2B - (INFORMATION) Repository:print: [3] EDI EDIFACT over Generic Exchange
2010.01.15 at 07:32:56:832: B2BStarter thread: B2B - (INFORMATION) Repository:print: [4] RosettaNet over RNIF
2010.01.15 at 07:32:56:835: B2BStarter thread: B2B - (INFORMATION) Repository:print: [5] EDI X12 over Generic Exchange
2010.01.15 at 07:32:56:837: B2BStarter thread: B2B - (INFORMATION) Repository:print: [6] Custom Document over MLLP Exchange
2010.01.15 at 07:32:56:840: B2BStarter thread: B2B - (INFORMATION) Repository:print: [7] Custom Document over AS1
2010.01.15 at 07:32:56:842: B2BStarter thread: B2B - (INFORMATION) Repository:print: [8] EDI EDIFACT over AS1
2010.01.15 at 07:32:56:845: B2BStarter thread: B2B - (INFORMATION) Repository:print: [9] HL7 over Generic Exchange
2010.01.15 at 07:32:56:848: B2BStarter thread: B2B - (INFORMATION) Repository:print: [10] Custom Document over Internet
2010.01.15 at 07:32:56:851: B2BStarter thread: B2B - (INFORMATION) Repository:print: [11] Custom Document over ebMS
2010.01.15 at 07:32:56:853: B2BStarter thread: B2B - (INFORMATION) Repository:print: [12] EDI X12 over Internet
2010.01.15 at 07:32:56:856: B2BStarter thread: B2B - (INFORMATION) Repository:print: [13] EDI EDIFACT over Internet
2010.01.15 at 07:32:57:649: B2BStarter thread: B2B - (DEBUG) Repository:constructCertSQL SELECT cert.ID, cert.CLASSTYPE FROM TIP_Certificate_ra cert, TIP_Party_ra party, TIP_DocumentExchange_ra docex WHERE cert.ID = docex.signingcredential AND cert.tradingpartner = party.ID AND party.ishosted != 'Y'
2010.01.15 at 07:32:57:785: B2BStarter thread: B2B - (DEBUG) oracle.tip.adapter.b2b.document.custom.CustomDocumentPlugin:initialize Enter
2010.01.15 at 07:32:58:077: B2BStarter thread: B2B - (DEBUG) oracle.tip.adapter.b2b.document.custom.CustomDocumentPlugin:initialize Exit
2010.01.15 at 07:32:58:824: B2BStarter thread: B2B - (DEBUG) oracle.tip.adapter.b2b.engine.Engine:initialize Enter
2010.01.15 at 07:32:58:827: B2BStarter thread: B2B - (DEBUG) oracle.tip.adapter.b2b.engine.Engine:initialize resetListener = true
2010.01.15 at 07:32:58:831: B2BStarter thread: B2B - (DEBUG) oracle.tip.adapter.b2b.engine.Engine:initialize initdcx = true
2010.01.15 at 07:32:58:891: B2BStarter thread: B2B - (DEBUG) oracle.tip.adapter.b2b.engine.Engine:initialize initialize TPAProcessor
2010.01.15 at 07:32:59:010: B2BStarter thread: B2B - (DEBUG) oracle.tip.adapter.b2b.engine.Engine:initialize Clear TPA Cache
2010.01.15 at 07:32:59:013: B2BStarter thread: B2B - (DEBUG) oracle.tip.adapter.b2b.engine.Engine:initialize initialize DataContext. Pool Size 0
2010.01.15 at 07:32:59:038: B2BStarter thread: B2B - (DEBUG) oracle.tip.adapter.b2b.data.MsgListener:initialize Treat Response as Request = false
2010.01.15 at 07:32:59:041: B2BStarter thread: B2B - (DEBUG) oracle.tip.adapter.b2b.data.MsgListener:initialize Exit
2010.01.15 at 07:32:59:043: B2BStarter thread: B2B - (DEBUG) oracle.tip.adapter.b2b.engine.Engine:initialize initialize Transport
2010.01.15 at 07:32:59:046: B2BStarter thread: B2B - (DEBUG) oracle.tip.adapter.b2b.transport.TransportInterface:initialize Initialize Transport Logger.
2010.01.15 at 07:32:59:059: B2BStarter thread: B2B - (DEBUG) oracle.tip.adapter.b2b.transport.TransportInterface:initialize Transport LogLevel = ERROR
2010.01.15 at 07:32:59:294: B2BStarter thread: B2B - (DEBUG) Repository:Repository:getDeliveryEndPointList() Wallet Location /apps/elshad4/aelshad4/elshad4_OracleB2B/Apache/Apache/conf/ssl.wlt/default/ewallet.p12
2010.01.15 at 07:32:59:297: B2BStarter thread: B2B - (INFORMATION) Repository:getDeliveryEndPointList: No Archive dir
2010.01.15 at 07:32:59:300: B2BStarter thread: B2B - (INFORMATION) Repository:getDeliveryEndPointList: marker :false
2010.01.15 at 07:32:59:314: B2BStarter thread: B2B - (INFORMATION) Repository:getDeliveryEndPointList: Putting ftp://elshad1.emerson.com//ftpdata/elshad1/ice/infile/850/PO
2010.01.15 at 07:32:59:322: B2BStarter thread: B2B - (INFORMATION) oracle.tip.adapter.b2b.transport.TransportInterface:initialize: Props: ftp://elshad1.emerson.com//ftpdata/elshad1/ice/infile/850/PO file.receiver.wallet_location = /apps/elshad4/aelshad4/elshad4_OracleB2B/Apache/Apache/conf/ssl.wlt/default/ewallet.p12
file.receiver.wallet_password = *****
file.receiver.polling_interval = 5
file.receiver.path = /ftpdata/elshad1/ice/infile/850/PO
file.receiver.marker = false
marker = false
ccc = false
file.receiver.channel_mask = None
file.receiver.minimum_age = 0
filename_format = %FROM_PARTY%_%TIMESTAMP%.dat
file.receiver.van = false
file.sender.channel_mask = None
file.receiver.user = eiced1
PROTOCOL_ENDPOINT = null
file.receiver.password = *****
file.receiver.preserve_filename = false
transport_callout_waittime = 30
preserve_filename = false
file.receiver.ccc = false
van = false
polling_interval = 5
2010.01.15 at 07:32:59:491: B2BStarter thread: B2B - (DEBUG) initialize TransportReceiver: [Emerson_Robin_FTP_TransportServer < ftp > < Emerson >]
2010.01.15 at 07:32:59:858: B2BStarter thread: B2B - (DEBUG) oracle.tip.adapter.b2b.transport.AppTransportInterface:initialize Initialize AppTransport Logger.
2010.01.15 at 07:32:59:864: B2BStarter thread: B2B - (DEBUG) oracle.tip.adapter.b2b.transport.AppTransportInterface:initialize AppTransport LogLevel = ERROR
2010.01.15 at 07:32:59:949: B2BStarter thread: B2B - (DEBUG) : Fri Jan 15 07:32:59 GMT+00:00 2010 Outbound - initialize
2010.01.15 at 07:32:59:953: B2BStarter thread: B2B - (DEBUG) : Fri Jan 15 07:32:59 GMT+00:00 2010 Obtaining outbound connection...
2010.01.15 at 07:32:59:956: B2BStarter thread: B2B - (DEBUG) : Fri Jan 15 07:32:59 GMT+00:00 2010 outbound connect string: jdbc:oracle:thin:@essdbdu31.emrsn.com:36001:ROBIND1
2010.01.15 at 07:32:59:960: B2BStarter thread: B2B - (DEBUG) : Fri Jan 15 07:32:59 GMT+00:00 2010 outbound username: apps
2010.01.15 at 07:33:04:319: B2BStarter thread: B2B - (DEBUG) : Fri Jan 15 07:33:04 GMT+00:00 2010 Outbound - initialize exit
2010.01.15 at 07:33:04:322: B2BStarter thread: B2B - (DEBUG) oracle.tip.adapter.b2b.data.MsgListener:startListen Enter
2010.01.15 at 07:33:04:326: B2BStarter thread: B2B - (DEBUG) oracle.tip.adapter.b2b.data.MsgListener:startListen Exit
2010.01.15 at 07:33:04:329: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.data.MsgListener:run Thread start
2010.01.15 at 07:33:04:332: B2BStarter thread: B2B - (DEBUG) oracle.tip.adapter.b2b.engine.Engine:initialize Exit
2010.01.15 at 07:33:04:335: B2BStarter thread: B2B8:15:32:157: B2BStarter thread: B2B - (DEBUG) : Fri Jan 15 08:15:32 GMT+00:00 2010 inbound username: apps
2010.01.15 at 08:15:33:757: B2BStarter thread: B2B - (DEBUG) : Fri Jan 15 08:15:33 GMT+00:00 2010 inbound initialize exit
2010.01.15 at 08:15:33:761: B2BStarter thread: B2B - (DEBUG) : Fri Jan 15 08:15:33 GMT+00:00 2010 Outbound - initialize
2010.01.15 at 08:15:33:764: B2BStarter thread: B2B - (DEBUG) : Fri Jan 15 08:15:33 GMT+00:00 2010 Obtaining outbound connection...
2010.01.15 at 08:15:33:767: B2BStarter thread: B2B - (DEBUG) : Fri Jan 15 08:15:33 GMT+00:00 2010 outbound connect string: jdbc:oracle:thin:@essdbdu31.emrsn.com:36001:ROBIND1
2010.01.15 at 08:15:33:770: B2BStarter thread: B2B - (DEBUG) : Fri Jan 15 08:15:33 GMT+00:00 2010 outbound username: apps
2010.01.15 at 08:15:34:473: B2BStarter thread: B2B - (DEBUG) : Fri Jan 15 08:15:34 GMT+00:00 2010 Outbound - initialize exit
2010.01.15 at 08:15:34:476: B2BStarter thread: B2B - (DEBUG) oracle.tip.adapter.b2b.data.MsgListener:startListen Enter
2010.01.15 at 08:15:34:479: B2BStarter thread: B2B - (DEBUG) oracle.tip.adapter.b2b.data.MsgListener:startListen Exit
2010.01.15 at 08:15:34:481: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.data.MsgListener:run Thread start
2010.01.15 at 08:15:34:484: B2BStarter thread: B2B - (DEBUG) oracle.tip.adapter.b2b.engine.Engine:initialize Exit
2010.01.15 at 08:15:34:487: B2BStarter thread: B2B - (DEBUG) B2BStarter - B2B initialized
2010.01.15 at 08:15:35:928: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.data.MsgListener:run initialize Enter
2010.01.15 at 08:15:36:132: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.data.MsgListener:run initialize B2BListen turned off, will not listen on IP_OUT_QUEUE for messages
2010.01.15 at 08:15:36:139: Thread-10: B2B - (DEBUG) oracle.tip.adapter.b2b.data.MsgListener:run start listening on message
regards
cnuAnuj,
The log which i placed on top, thats the complete log and DC log is given below
2010.01.18 at 12:58:06:117: Thread-14: (ERROR) FTPClient.listNames(): unexpected 550 is encountered.
2010.01.18 at 12:58:11:130: Thread-14: (ERROR) FTPClient.listNames(): unexpected 550 is encountered.
2010.01.18 at 12:58:16:143: Thread-14: (ERROR) FTPClient.listNames(): unexpected 550 is encountered.
2010.01.18 at 12:58:21:153: Thread-14: (ERROR) FTPClient.listNames(): unexpected 550 is encountered.
2010.01.18 at 12:58:26:169: Thread-14: (ERROR) FTPClient.listNames(): unexpected 550 is encountered.
2010.01.18 at 12:58:31:164: Thread-14: (ERROR) FTPClient.listNames(): unexpected 550 is encountered.
2010.01.18 at 12:58:36:173: Thread-14: (ERROR) FTPClient.listNames(): unexpected 550 is encountered.
2010.01.18 at 12:58:41:182: Thread-14: (ERROR) FTPClient.listNames(): unexpected 550 is encountered.
2010.01.18 at 12:58:46:194: Thread-14: (ERROR) FTPClient.listNames(): unexpected 550 is encountered.
2010.01.18 at 12:58:51:210: Thread-14: (ERROR) FTPClient.listNames(): unexpected 550 is encountered.
2010.01.18 at 12:58:56:217: Thread-14: (ERROR) FTPClient.listNames(): unexpected 550 is encountered.
2010.01.18 at 12:59:01:244: Thread-14: (ERROR) FTPClient.listNames(): unexpected 550 is encountered.
2010.01.18 at 12:59:06:254: Thread-14: (ERROR) FTPClient.listNames(): unexpected 550 is encountered.
2010.01.18 at 12:59:11:256: Thread-14: (ERROR) FTPClient.listNames(): unexpected 550 is encountered.
2010.01.18 at 12:59:16:283: Thread-14: (ERROR) FTPClient.listNames(): unexpected 550 is encountered.
2010.01.18 at 12:59:21:276: Thread-14: (ERROR) FTPClient.listNames(): unexpected 550 is encountered.
2010.01.18 at 12:59:26:285: Thread-14: (ERROR) FTPClient.listNames(): unexpected 550 is encountered.
2010.01.18 at 12:59:31:297: Thread-14: (ERROR) FTPClient.listNames(): unexpected 550 is encountered.
2010.01.18 at 12:59:36:314: Thread-14: (ERROR) FTPClient.listNames(): unexpected 550 is encountered.
2010.01.18 at 12:59:41:324: Thread-14: (ERROR) FTPClient.listNames(): unexpected 550 is encountered.
2010.01.18 at 12:59:46:327: Thread-14: (ERROR) FTPClient.listNames(): unexpected 550 is encountered.
2010.01.18 at 12:59:51:341: Thread-14: (ERROR) FTPClient.listNames(): unexpected 550 is encountered.
2010.01.18 at 12:59:56:352: Thread-14: (ERROR) FTPClient.listNames(): unexpected 550 is encountered.
2010.01.18 at 13:00:01:359: Thread-14: (ERROR) FTPClient.listNames(): unexpected 550 is encountered -
File Receiver - before message processing *urgent*
Hello experts,
I have a scenario where i need to execute a script in File receiver adapter.
problem: "i send an xml file to target system, but as long as there is a .xml file in the directory, it should not send.
He should wait and send only then when there is no .xml file in the directory."
Is that possible with "run operating system command before" in the receiver adapter or i need for this issue BPM?
Best wishes,
FKHi,
File receiver adapter has a "Run Operating System Command Before/After Message Processing" feature, so you could use it for such purpose :
http://help.sap.com/saphelp_nw04/helpdata/en/bc/bb79d6061007419a081e58cbeaaf28/content.htm
I think it could be better to use a script than using BPM (it will save resources at XI level).
Chris -
FrameMaker crashes when saving a file as XML
Hello -
I am encountering a problem saving a .fm file as a .xml file. I have saved many .fm files as .xml files in the past with no issues. However, lately FM crashes with a "serious error" on certain files when I try the same save process. My initial thought was that the file was somehow corrupted, but this morning I ran into this scenario: I have 3 FM licenses in my office, I was trying to save a .fm file as .xml and FM kept crashing. So I had another co-worker try to save the exact same file as a .xml file and it WORKED!?!?!?!
We all were using FM 11, but I have since installed FM 12 thinking that version 12 wouldnt have the same problem, but the same issue is happening with both versions of FM. I read that FM has issues when working across a network so I have tried it both ways, across the network and locally and the same issue occurs.
Again, this problem occurs occasionally on various files - not every file, but as previously mentioned I was able to successfully save a file on a different machine that I could not save on my machine. I have the most recent log file that was generated after a crash:
[*** LOG FILE REMOVED BY MODERATOR***]
Thanks in advance for any help in this matter.
GavinAn update -
So FM now appears to crash "sometimes" when saving as an xml file AND when saving the file in general. I have 3 machine with FramMaker installed, first with version 11 now with version 12. These 3 machines are all identical as far as SW running on them, etc... I have been unable to detect a pattern as to when FM will crash thus far. Sometimes it will crash when I try to save the file as an .xml file and sometimes it will save just fine. I have resorted to marking up the document a little at a time, saving the file, then trying to save as an XML file. It will work sometimes and other times it will crash. Sometimes it crashes when trying to save the .fm file other times it works; sometimes it will crash when I try to save the .fm file as a .xml file, other times it will work. About the only thing in common that I have found thus far is the fact that it happens with the same file over and over again; meaning that if I have a pool of 12 files that I need to load into FM and markup, 11 of the 12 files may work just fine and the 12 file will not - it will crash FM at some point in the markup/saving process every time. One might guess that the original file is somehow corrupt and that may be, but at this point I am not sure how I prove that is the case as FM seems to load it in just fine and I can save it right off the bat just fine. Does anyone know how I can prove that the structured file i receive initially is corrupt when it loads into FM fine? If we were causing some issue with the import of our modified EDD then why dont we have the same issue with the other 11 files in the batch as they all are using the same EDD?
I have sent my most recent log files to adobe tech support this morning. I have tried saving files on shared drives as well as on local drives. I have tried the same process on the other workstations with the same results.
Does anyone have ideas on how I can isolate a problem with the source file (structured doc) or on why FM is crashing when I perform these actions?
Thanks,
Gavin (Ryan) -
Name zip file and zipped file in File Receiver
Dear experts,
I have a "RFC to File"-scenario. So I have a File Receiver and the received XML needs to be zipped. I have a XSLT mapping that hands over a dynamic file name to the File Receiver. Now when I use the PayloadZipBean my resulting ZIP-file gets the dynamic name. But the zipped XML gets the name "untitled.xml". But I also want the zipped file to get the dynamic name!
I had a look at Stefan Grube's blog /people/stefan.grube/blog/2007/02/20/working-with-the-payloadzipbean-module-of-the-xi-adapter-framework
and also at the WIKI http://wiki.sdn.sap.com/wiki/display/XI/Adapter%20Module%20PI%207.0%20Set%20Attachment%20Name?bc=true
Do you know if there is any way I can avoid writing my own adapter module? I would like to stay with SAP standard modules!
If not, will the module described in that WIKI also work with a File Receiver instead of a Mail Receiver? (I think it should)
Thank you for any ideas and best regards,
PeterHello Amit, Hello Abhishek Salvi,
Thank you again for your advice and the links to the NWDS. I downloaded it and everything went well until the deployment.
I followed How-to-Guide: http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/c0b39e65-981e-2b10-1c9c-fc3f8e6747fa?quicklink=index&overridelayout=true
Then I got the error: The DOCTYPE declaration in the ejb-jar.xml deployment descriptor is missing.
I looked at thread: The DOCTYPE declaration in the ejb-jar.xml deployment descriptor is missing
I am using PI 7.0, JDK version 1.4.12.
My local JDK Version 1.5.0_22, NWDS 7.1.
Could the JDK version on the server be a problem? Or NWDS 7.1 and PI 7.0?
I used all the libraries mentioned on this page under PI 7.0:
http://wiki.sdn.sap.com/wiki/display/XI/Where%20to%20get%20the%20libraries%20for%20XI%20development
When I create the Enterprise Bean I have to specify "Component and Local Interfaces", e.g. "com.sap.aii.af.lib.mp....."
But in my PI system I cannot find JAR files with the name "aii.af.lib.mp..."
Could that be the problem?
Do I have to specify different "Component and Local Interfaces" when creating the Enterprise Bean?
Thank you again for any help!
Best regards,
Peter
Edited by: Peter Wallner on Apr 21, 2011 10:13 AM
Maybe you are looking for
-
Hi Could any body please share with me the sample code for connectivity of PI ( old version called XI ) and ABAP via Proxy for Outbound interface. points will be rewarded for sure Thanks & Regards Meeta
-
My ipad is froze with a message saying int has been two weeks since I update my icloud.
-
SYS_REFCURSOR output problem
create or replace procedure p1 (p1 out SYS_REFCURSOR) as sqlstmt VARCHAR2(32760); begin sqlstmt :='WITH cte AS (SELECT Count(OBJECT_ID) from all_objects where OBJECT_ID <515) Select * from cte' ; dbms_output.put_line(sqlstmt); OPEN p1 FO
-
Read Source from IWDCustomEvent
Hello, I have in webdynpro ABAP an action, which opening a confirmation-dialog with two Buttons "yes" / "no". I can check in wdEvent from the action of destination, which button clicked. For Example: wd_Event->getParameter("ID"). The returnValue ist
-
Hi all again. I'm practicing JOBS, and I have a program that insert 3 records in a Z table What I do is: 1. Loop to my internal table and then record by record I user the clause INSERT, if sy-subrc eq 0, then COMMIT and write:/ Record added, ELSE. ro