PI Generates Proxy - CX_INVALID_TRANSFORMATION
HI PI Experts...
This error relates to PI7.1
We have generated a new proxy to invoke a Service Interface on PI7.1. So we have an ECC6 system calling PI7.1 via proxy.
Our scenario is working...but we sporadically get a short dump with an execption: CX_INVALID_TRANSFORMATION
Pls note that the Simple Transformation XSLT is being executed in the 'background' within the generated proxy code and has been generated via the sproxy transaction. It was not custom developed.
And as I have previously stated, it does work and this error seems to occur on a random basis. For for example, i would inokve the proxy and everyhting works and then 10mins later, executing the proxy with the same data results in a short dump.
I have checked out the following OSS notes:
701467
773330
But these seem 'out-dated' and I dont believe they are applicable to PI7.1.
Has anyone experienced this issue before?
Any help would be greatly appreciated.
In the meantime, I will be looging an OSS issue as well...and will keep you guys informed.
Cheers
Yackeen
Hi All,
I believe this is an OSS issue to be resolved. What I have found thus far is as follows:
The exact error is:
<SAP:Stack>
Error during proxy processing An exception with the type CX_AI_SYSTEM_FAULT occurred, but
was neither handled locally, nor declared in a RAISING clause PARSE_APPLICATION_DATA
Error during XML => ABAP conversion (Response Message; error ID:
CX_INVALID_TRANSFORMATION;
( Error Text: The transformation /1SAI/TXSA452BFBF0DF199E50745 could not be executed))
Error during XML => ABAP conversion (Response Message; error ID:
CX_INVALID_TRANSFORMATION;
( Error Text: The transformation /1SAI/TXSA452BFBF0DF199E50745 could not be executed))
The transformation /1SAI/TXSA452BFBF0DF199E50745 could not be executed
</SAP:Stack>
I then checked out & reactivated the specific generated XSLT program (_/1SAI/TXSA452BFBF0DF199E50745_) transaction xslt_tool. This still had no affect.
I then deleted the generated xsl program. Reran my interface and it worked!!!
But then we I ran the interface again, it then failed again. So I am in the process of raising an OSS issue.
Cheers
Yackeen
Similar Messages
-
How to find out the number of fields in generated proxy structure?
Hi All,
Can anybody help me to find out the number of fields in generated proxy structure in back end system along with controller fields.
i know how to get number of fields in XI system but i want the number of fields in back end system when we generate proxy including automatically generated controller fields.
Thanks in advance.
Regards,
UjwalkumarU mean u want to know at runtime?
Get the output from ur proxy as a string, count the number of "<" characters and divide it by 2. :-P
Of course, you'll have to treat the header fields separately.
Regards,
Henrique. -
Best Practice for WSDL Generate Proxy Class for Web Service with Two Versions
Dear All
Thank you in advance for you help.
I would like to generate proxy classes for same function but with two versions.
Old version web service (v23.2) is used for stable modules in a project which is not going to modify.
However, enhancement is added in new version web service (v24) and is going to use in any future modules.
For example,
wsdl.exe -o="TestProxy.cs" -l:CS -n:Test -sharetypes https://community.workday.com/custom/developer/API/Notification/v23.2/Notification.wsdl https://community.workday.com/custom/developer/API/Notification/v24.0/Notification.wsdl
It generates similar classes with an '1' added at the end of the class name.
ublic partial class Event_TargetObjectType {
private Event_TargetObjectIDType[] idField;
public partial class Event_TargetObjectType1 {
private Event_TargetObjectIDType1[] idField; ...}
Since the function inside some class is the same, is it possible for WSDL.exe to generate proxy classes automatically that if the class is the same, then generate one class only (sameFunction()) but if it detects the class is different, then add '1'
to the end of class name (differentFunction() and differentFunction1())
i.e.
public class sameFunction()
public class differentFunction()
private int a;}
public class differentFunction1()
{ private int b;
Best Regards
mintssoulHi mintssoul,
As per this case, I have shared corresponding details below :
1.As far as I know, WCF doesn’t support method overloading directly
2.Because WSDL doesn’t support method overloading (not OOPs).
3.WCF generates WSDL which specifies the location of the service and the operation or methods the service exposes.
4.WCF use Document/Literal WSDL Style : Microsoft proposed this standard where the soap body element will contain the web method name.
5.By default all the WCF services conform to the document literal standard where the soap body should include the method name.
6.but you can differ the method in the same manually by using Name attribute like below
For example:
[OperationContract(Name="Integers")]
int Display(int a,int b)
[OperationContract(Name="Doubles")]
double Display(double a,double b)
7. Or I suggest you that can use svcutil to map multiple namespaces for generating wcf service proxies .
for more information about this, refer here :
http://stackoverflow.com/questions/1103686/use-svcutil-to-map-multiple-namespaces-for-generating-wcf-service-proxies -
Does anyone have an idea if the WSDL is wrong or if it's an XI problem?
thanks
Johann Marty
TeamWork Management SA
Geneva
Cannot generate proxy (object missing in WSDL, see long text)
Message no. SPRX084
Background
During proxy generation, an interface description in WSDL format is fetched from the Integration Builder or another source and interpreted. This WSDL document must describe the whole interface correctly.
==> Display WSDL Document
Diagnosis
In the WSDL document, the object
"<message name="existDocument"> <part name="invo..."
from the namespace
"http://tempuri.org/"
links to the object
from the namespace
However, this last object does not exist in the WSDL document.
System response
ABAP proxy generation expects that all directly and indirectly referenced objects are in the WSDL document. Therefore, no proxy can be generated for this WSDL and the system displays an error message.
Procedure
This situation can have different causes:
Object "" not been defined
Object "" saved in the wrong namespace
In the reference to object "", the wrong name was specified
In the reference to object "", the wrong namespace "" was specified
Internal error in the service that constructs the WSDL document
Internal error in ABAP proxy generationHi,
Just cross check with your configuration details.
Also try to recreate the proxy and activate it.-
/people/vijaya.kumari2/blog/2006/01/26/how-do-you-activate-abap-proxies
Regards,
Moorthy -
Compilation Error for import classes not found in generated Proxy Class
Hi,
We are generating java classes for the COM dll using JCOM com2java compiler.
We are getting a compilation error for import class not found when compiling the
generated Proxy java source code. It can't find the com.bea.jcom.Dispatch class that
the generated Proxy java source code extends. It also can't find com.bea.jcom.Variant
or com.bea.jcom.Param. These are interfaces or data types or classes used by COM
library.
I added weblogic.jar to my class path and the only Dispatch class i found inside
the weblogic.jar is com.linar.jintegra.Dispatch;
We have com objects for which we want to develop an EJB client to interface with
the COM object using JCOM with Native Mode disabled.
Any help on the compilation error..I tried changing the extends for Dispatch to com.linar.jintegra.Dispatch
but the other errors are still there.
To begin with, I think the generated code should not refer to any of the COM data
types.
Any help please.
Thank you in advance,
Regards,
Rahul Srivastava
[email protected]Hi,
I resolved the other errors by changing all references from com.bea.jcom.Variant
etc to com.linar.jintegra.class name..all were present under the com.linar.jintegra
package.
Thank you all anyways,
Regards,
rahul
"Rahul Srivastava" <[email protected]> wrote:
>
Hi,
We are generating java classes for the COM dll using JCOM com2java compiler.
We are getting a compilation error for import class not found when compiling
the
generated Proxy java source code. It can't find the com.bea.jcom.Dispatch
class that
the generated Proxy java source code extends. It also can't find com.bea.jcom.Variant
or com.bea.jcom.Param. These are interfaces or data types or classes used
by COM
library.
I added weblogic.jar to my class path and the only Dispatch class i found
inside
the weblogic.jar is com.linar.jintegra.Dispatch;
We have com objects for which we want to develop an EJB client to interface
with
the COM object using JCOM with Native Mode disabled.
Any help on the compilation error..I tried changing the extends for Dispatch
to com.linar.jintegra.Dispatch
but the other errors are still there.
To begin with, I think the generated code should not refer to any of the
COM data
types.
Any help please.
Thank you in advance,
Regards,
Rahul Srivastava
[email protected] -
Client Proxy : How to Call Outbound Generated Proxy in ABAP report ?
Dear SDNrs.
I have already created a Scenario for Client/ Outbound Proxy in XI .
I have already Generated Client/ Outbound Proxy in ECC .
Now Question is How to call this generated Proxy in report ?
Please Guide ..... I dont have any idea ...
1. before calling any proxy in report what information needs to collect from generated Proxy ?
2. How to call this generated Proxy in report ?
Regards
Prabhat Sharma.Hi Prabhat
You have to use your knowledge about ABAP OO for this.
It's simple. You created your Proxy Object throught SPROXY transaction, right? Now, you have to instance your class (information avaliable in SPROXY-> Proxy Objetc -> Class Name) and to use the method displayed there.
Follow an example:
DATA: wa_backfeed TYPE zibrsapglbackfeed_sapgl,
wa_output TYPE zibrsapglrequest,
lo_clientproxy TYPE REF TO zibrco_sapgl_out,
lo_sys_exception TYPE REF TO cx_ai_system_fault.
TRY.
CREATE OBJECT lo_clientproxy.
CALL METHOD lo_clientproxy->sapgl_out
EXPORTING
output = wa_output.
CATCH cx_ai_system_fault INTO lo_sys_exception.
lo_sys_exception->if_message~get_text( ).
ENDTRY. -
Transform generated proxy tables into 'z' tables
Hello to everyone,
My doubt is really persistent and it's an important one...
Imagine we have an wsdl and we create a enterprise service proxy client. The R3 will generate 'Z' tables for the structure which the webservice needs for the request and the response.
How can I transform those generated proxy tables into normal 'Z' tables from the R3 Dictionary database?
Is it possible? Or do I have to create similar tables to the proxy tables?
The problem is that the response structure is really huge, and the work needed to create all the tables necessary to acomodate and all the mapping between the generated proxy tables and the ones that I'll have to create is HUGE!!!... Can I transform in any way those proxy tables?
Any help will be appreciated....Hello Gonçalo
The generated proxy tables are indeed structures (and table types). In your case you have plenty of these structures that have to be "converted" into normal Z-tables.
One approach would be to use an
eCATT for this task. The steps could be as following:(1) Create a new z-table
(2) Include the corresponding proxy structure
(2.a) Transfer fields from include and remove .INCLUDE reference
(3) Remove obsolete fields
(4) Add additional fields
(5) Generate the z-table
Regards
Uwe -
Reg: Generating Proxy for a Schema exposed as a WCF sevice
Hello All,
I have worked on number of project and I never come across such problem. Lemme explain the situation:
1) Exposed Schema as a WCF service (https:// endpoint)
2) I am able to browse the service and also view the metadata.
3) When I try to do add service reference in my .Net project, am getting the following error:
The document at the url "" was
not recognized as a known document type.
The error message from each known type may help you fix the problem:
- Report from 'XML Schema' is 'The document format is not recognized (the
content type is 'text/html; charset=UTF-8').'.
- Report from ''My EndPoint''
is 'The document format is not recognized (the content type is 'text/html;
charset=UTF-8').'.
- Report from 'DISCO Document' is 'There was an error downloading ''My EndPoint''.'.
- The underlying connection was closed: An unexpected error
occurred on a send.
- Unable to read data from the transport connection: An existing
connection was forcibly closed by the remote host.
- An existing connection was forcibly closed by the remote host
- Report from 'WSDL Document' is 'The document format is not recognized (the
content type is 'text/html; charset=UTF-8').'.
Metadata contains a reference that cannot be resolved: 'My EndPoint'.
The HTTP request was forbidden with client authentication scheme 'Anonymous'.
The remote server returned an error: (403) Forbidden.
If the service is defined in the current solution, try building the solution
and adding the service reference again.
In the receive location, I am using transport and client certificate as windows.
At the IIS level, I have the certificate assigned for the site SSL and in the web.config I have authentication mode as Windows.
Am not sure what am I missing.
Thanks, SKGuruIt didn't work for me. Actually I am using the host name. There is no problem with the service as I can browse and see the WSDL. The only problem is I am not able to generate proxy out of it using svcutil.exe.
Thanks, SKGuru -
Generating proxy from wsdl ends in error
Our sap installation is 'SAP ECC 6.0' and I'm trying to generate proxy (for testing purposes) from se80 by using url: http://cheeso.members.winisp.net/books/books.asmx?WSDL
Proxy generationg is cancelled by the system and I get message in se80 saying:
'Exception occurred in library handler
Not implemented'
This was working earlier on our system (older sap release) and I also tested this on other sap (SAP ERP Central Component 5.0) and it works.
Does anyone have an idea, what is wrong?I am facing the same problem.
Take a look at
https://websmp130.sap-ag.de/sap(bD1lcyZjPTAwMQ==)/bc/bsp/spn/sapnotes/index2.htm?numm=748781
https://websmp130.sap-ag.de/sap(bD1lcyZjPTAwMQ==)/bc/bsp/spn/sapnotes/index2.htm?numm=809792
They correspond to : note 748781 and 809792 in SAP Service Marketplace
The XML format for proxy generation : note 944029
I hope it helps you. -
Using WSDL2java to generate proxy from wsdl
HI,
I have a web service (implemented in .NET) which extends soap headers for doing
Authentication. WSDL is generated out of this web service. But when i use wsdl2java
(J2EE) to generate a proxy class, there is no interface generated for soap headers.
Without extending SOAP headers the web service works fine.
Basically, I'm looking for a way to generate java interfaces (ie. proxies) for
SOAP headers out of the WSDL file.
PFA the WSDL file and the proxy
Any help on this is appreciated.
[WSOClient.zip]I am not sure why it fails in WebSphere. Please try posting
this question to a WebSphere newsgroup.
Regards,
-manoj
http://manojc.com
"viswanath" <[email protected]> wrote in message
news:40aee7fa$1@mktnews1...
>
thanks manoj for your reply.
I'm using IBM WebSphere SDK for Web Services v5.1
for generation of java client.
I'm able to generate the client but the problem is
the WSDl2Java command ignored the SOAPHeaders while
generating the proxy. Since I'm using SOAP headers for
authentication the code fails.
Thanks,
Viswanath
"manoj cheenath" <[email protected]> wrote:
I am not sure which tool you are using
to generate web service clent. To generate
a WLS web service client you have to use clientgen.
Details here:
http://e-docs.bea.com/wls/docs81/webserv/anttasks.html
Regards,
-manoj
http://manojc.com
"viswanath" <[email protected]> wrote in message
news:40ad8a07$[email protected]..
HI,
I have a web service (implemented in .NET) which extends soap headersfor
doing
Authentication. WSDL is generated out of this web service. But wheni use
wsdl2java
(J2EE) to generate a proxy class, there is no interface generated forsoap
headers.
Without extending SOAP headers the web service works fine.
Basically, I'm looking for a way to generate java interfaces (ie.
proxies)
for
SOAP headers out of the WSDL file.
PFA the WSDL file and the proxy
Any help on this is appreciated. -
Hi All,
I get a short dump while generating a proxy in the backend.I give the package and the prefix and end up with a short dump.
Does any one know why this mught come up
"Dynamic type conflict during the assignment of references."
background: I imported a WSDl provided by legacy into PI and created service interfaces and then trying to generate a proxy class while i get this error.
Thanks.Hi Shyamsundar,
I will explain a problem that I usually see in some developments:
XSD originally: XSD transformed:
Root -> Root
Tag 1 type int -> Tag 1 type int
Tag2 type string -> Tag2 type string
Tag3 type any - Tag3 type string
Normally the tag3 should have a XML inside. Then the ABAPers have to construct the tag3 with a CDATA structure (CDATA is used to put in an XML tag more XML tags inside like a text and no to be interpreted).
Later in SAP PI you can extract the cdata with an XSL, you can find some examples in the SCN.
I don’t like to convert the whole XML in only one string tag, because this makes difficult the develop for the ABAPers, although the work inside the PI is very easy because with an XSL you can extract the whole message easily. (You can find some examples in the SCN)
Regards. -
Generated Proxy Error: System not configured as XI Integration Engine
Dear all,
Using transaction SPROXY I generated a proxy on a Message Interface.
This generated as well a method and the associated class.
When I run it, trying to send data through all this, I get the following error:
<b>System not configured as XI Integration Engine</b>
Here is the model I got on another thread, in order to catch the error text:
DATA: l_sys_exception TYPE REF TO cx_ai_system_fault.
*...proxy call
catch CATCH CX_AI_SYSTEM_FAULT into l_sys_exception.
write: l_sys_exception->errortext.
Anyone has any idea where this error commes from?
I am mostly wondering whether the problem comes from my outbound system or XI configuration?
Thanks a lot, have a nice day!
Isa.check this thread
https://forums.sdn.sap.com/click.jspa?searchID=2727912&messageID=1877263 -
Namespace prefix tags in the generated proxy
Hi,
I am using JDevloper10G to create proxy for a webservice. The generated xml request message seem to contain namespace prefix tags. Is it a bug in 10G and resolved in 11G?
Thanks."Is it a bug in 10G and resolved in 11G?"
Easiest way to tell is: download 11g and give it a go. Otherwise log a support request with Oracle Support and ask them.
CM. -
Cannot generate proxy (object missing in WSDL)
Hi folks,
Once again, my apology for this thread isnt 100% XI forum related. But, continuing with this issue
As you can see on my earlier post
Consuming an external web service with WAS 6.40
Im trying to consume an external web service. Following Michals suggestion I have checked the WSDL in debug mode and I found some irregularities on it. It seams this WSDL doesnt describe the whole interface correctly. Looking to Diagnosis, I see an object <b>"<message name="listaCodSig0Request"> <part name..."</b> that is linked to an empty object, or either, doesnt exist in the WSDL document!!!
<i>ABAP proxy generation expects that all directly and indirectly referenced objects are in the WSDL document. Therefore, no proxy can be generated for this WSDL and the system displays an error message.</i>
It seams that this web service was developed through messages with several parts. Searching in http://service.sap.com I found a document <u>XSDandWSDL_XI30SP11.xls</u> with supported XML schema and WSDL. In this doc I can see that messages with several parts are not supported!!!
I would like to know how can I workaround this issue. Is it possible replace these elements<b> part name= </b> with other supported elements in the WSDL document and without changes on the web service? Im asking this because this external web service are working well with other third party client applications and is not supposed perform any changes on that.
I tried to replace <b>part name= </b> to <b>part element= </b>, but it doesnt work! Proxy generation terminated: WSDL error (object part without name)
Anyone knows which elements I should use in replace of these unsupported elements and which procedures I need to taking into account?
Thanks in advance,
Ricardo.Hey Ricardo,
First of all, when I tried to save your wsdl in XMLSpy, it complained about the empty soapaction declaration in the <operation> tag. I had to remove the line
<soap:operation soapAction="" style="rpc" />
in order to make it work in XMLSpy. It would be a good idea to check that out with the developers of the wsdl.
Anyway, after I removed that tag, I start comparing your wsdl to a common Message Interface wsdl generated by XI. By doing that, I have found out that the <part> element in XI has a name and also refers to an existing element, which was previously defined in the <schema> group.
I've made some modifications, you could try it, but I have found an issue about this approach. With your wsdl, the soap request message has a <listaCodSig> tag with namespace "http://db_cml_alcor_mgb/Moradas_Edificios.xsd", and inside it, you have a <pDesignLocal> tag with no namespace defined.
If you use the modificated wsdl below, both <listaCodSig> and <pDesignLocal> tags have namespace as "http://db_cml_alcor_mgb/Moradas_Edificios.xsd", and I think that'll cause issues in your server application. But you can try it out, playing with the wsdls, if you can remove the definition there.
The modificated wsdl is below (changed parts in bold).
<?xml version="1.0" encoding="utf-8"?>
<!-- Generated by the Oracle JDeveloper 10g Web Services WSDL Generator -->
<!-- Date Created: Wed Nov 08 12:01:03 GMT 2006 -->
<definitions
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://alcor.cm-lisboa.net:7777/CML-SRUs-context-root/Moradas_Edificios.wsdl"
xmlns:ns1="http://db_cml_alcor_mgb/Moradas_Edificios.xsd"
name="Moradas_Edificios"
targetNamespace="http://alcor.cm-lisboa.net:7777/CML-SRUs-context-root/Moradas_Edificios.wsdl">
<types>
<schema
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
targetNamespace="http://db_cml_alcor_mgb/Moradas_Edificios.xsd">
<b><element name="pDesignLocal" type="xsd:string"/>
<element name="return" type="ns1:db_cml_alcor_mgb_TabMoradaEdif"/></b>
<complexType name="db_cml_alcor_mgb_TabMoradaEdif"
jdev:packageName="db_cml_alcor_mgb"
xmlns:jdev="http://xmlns.oracle.com/jdeveloper/webservices">
<all>
<element name="array"
type="ns1:ArrayOfdb_cml_alcor_mgb_MoradaEdifUser"/>
</all>
</complexType>
<complexType name="db_cml_alcor_mgb_MoradaEdifUser"
jdev:packageName="db_cml_alcor_mgb"
xmlns:jdev="http://xmlns.oracle.com/jdeveloper/webservices">
<all>
<element name="codSig" type="string"/>
<element name="desigLocal" type="string"/>
<element name="codLocal" type="string"/>
<element name="nrPol" type="string"/>
<element name="nome" type="string"/>
<element name="nrObraConstrucao" type="string"/>
<element name="freguesia" type="string"/>
<element name="areaGestao" type="string"/>
</all>
</complexType>
<complexType name="ArrayOfdb_cml_alcor_mgb_MoradaEdifUser"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<complexContent>
<restriction base="SOAP-ENC:Array">
<attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="ns1:db_cml_alcor_mgb_MoradaEdifUser[]"/>
</restriction>
</complexContent>
</complexType>
</schema>
</types>
<message name="listaCodSig0Request">
<b><part name="pDesigLocal" element="ns1:pDesignLocal"/></b>
</message>
<message name="listaCodSig0Response">
<b><part name="return" element="ns1:return"/></b>
</message>
<portType name="Moradas_EdificiosPortType">
<operation name="listaCodSig">
<input name="listaCodSig0Request" message="tns:listaCodSig0Request"/>
<output name="listaCodSig0Response" message="tns:listaCodSig0Response"/>
</operation>
</portType>
<binding name="Moradas_EdificiosBinding" type="tns:Moradas_EdificiosPortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="listaCodSig">
<input name="listaCodSig0Request">
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="Moradas_Edificios"/>
</input>
<output name="listaCodSig0Response">
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="Moradas_Edificios"/>
</output>
</operation>
</binding>
<service name="Moradas_Edificios">
<port name="Moradas_EdificiosPort" binding="tns:Moradas_EdificiosBinding">
<soap:address location="http://alcor.cm-lisboa.net:7777/CML-SRUs-context-root/Moradas_Edificios"/>
</port>
</service>
</definitions>
Regards,
Henrique. -
Can BAPI Structure be used to generate Proxy?
Hi @ ,
I want to generate the proxy for a BAPI that i have imported the BAPI already.I don't want to use RFC but proxy based upon the BAPI structure.
REgards,Hi
check this thread
Re: BAPI or Proxies
Maybe you are looking for
-
How can I return all line in a file that matches using regexp
Hi! I want to return whole line from a file. This lines must to contains matches for a pattern. How Can I do this. I make some samples, but only return the matches segment of the line. Sample code to look for 00:00 If I put .*00:00.* in the pattern t
-
Hi Experts, In my Alv report top-of-page, i have a date . with name "Open Items As key Date" but i cant see full text and if the date is 11.07.2008. its showing 11.07.20. so how to do this. Correct answers will be fully rewarded. Regards
-
Email and SMS services in Goldengate
Hi; i am able to make active-active replication enviroment. but i want some another facility. if there some process failure, some data error or you can say any type of error and stop the process. in case can we get any EMAIL or SMS alert for user not
-
Previous suggestions said after sys prfs..Printers..I should either open the print queues then go to printer setup then chose driver, or go to options & supplies and then do settings, or in some way click the driver and pick the settings. None of th
-
How can I "Copy" the description from iPhotos?
I am trying to get descriptions from iPhoto files into Family Tree Maker Mac2. It seems that FTM doesn't import that info with the .jpg file, but that is a separate issue. When I try to Copy the Description from the Info for a photo, I get strange