Why we use IDOC adapter for IDOC as reciever?

hello,
Why we use IDOC adapter while using IDOC as receiver, whereas we don't use IDOC adapter while IDOC is sender?
I am clear about why we don't use adapter for sender IDOCs.
Thank you.
Sarika

Hi Sarika,
>>>>Why we use IDOC adapter while using IDOC as receiver,
maybe the easiest answer would be that we use
IDOC adapter as receiver to tell the XI where he should
send the data - there are many systems to which we can
connect our XI and somewhere there has to be an object
which will tell thx XI "where to" -> which RFC destination should it use
BTW
I believe IDOC apdater is also used as sender
although you don't configure it in AF:
"Once the IDoc has left the application through the RFC interface and has reached the <b>IDoc adapter</b> at the Integration Server inbound channel, the system converts it from IDoc format to IDoc XML format"
from:
http://help.sap.com/saphelp_nw04/helpdata/en/b9/c5b13bbeb0cb37e10000000a11402f/content.htm
Regards,
michal

Similar Messages

  • When & Why to Use WL Adapter for MQSeries as compared to MDB?

              We have a need to both send and receive message via MQSeries in asynch mode.
              Initial assessment was to receive messages via MDB and send messages by use a
              pool of Sessions to the MQ Mgr connection.
              Given this why should one use WL Adapter for MQ?
              Thanks
              Tariq.
              

    I assume you are referring to the "WLI" adapter? Perhaps try posting
              your question to the "weblogic.integration.developer" or
              "weblogic.integration.interest" newsgroup.
              If you are referring to the "Messaging Bridge", which comes with
              WebLogic server, then the advantage is that MQ need not be up for the
              senders to continue sending. Senders can send messages to a WebLogic
              queue, which the bridge can in turn forward to an MQ queue. The
              disadvantage is that the extra bridge hop may slow down your app.
              Tom, BEA
              P.S. You are likely by now aware that WL 8.1 (just released in beta),
              can automatically pool foreign (or WebLogic) sessions for you.
              Additionallly, it provides help in that you can configure wrappers for
              foreign JMS objects. See "Accessing JMS Foreign Providers" and
              "Accessing JMS via Servlets and EJBs" listed under new features:
              http://e-docs.bea.com/wls/docs81/notes/new.html#1125379
              Tariq Bhatti wrote:
              > We have a need to both send and receive message via MQSeries in asynch mode.
              > Initial assessment was to receive messages via MDB and send messages by use a
              > pool of Sessions to the MQ Mgr connection.
              >
              > Given this why should one use WL Adapter for MQ?
              >
              > Thanks
              > Tariq.
              >
              

  • How run reports JDE from BPEL using the Adapter for JD Edwards OneWorld?

    Hi,
    I need to load on line a lot of invoices from Bpel to JD Edwards using the Adapter for JD Edwards OneWorld (iWay).
    Using Business Functions as Web Services it wasn't a not good idea because of this Adapter is poorly constructed and doesn't allow simultaneous loads, a memory leak occurs on JDE server. And to load them invoice by invoice is very slow.
    A choice is to use Z tables and load them through schedules, but Bpel loses total control.
    I heard that I can run processes reports that enable to extract the data from the Z tables and load them into JDE.
    How can I execute reports JD Edwards invoked from BPEL using the Adapter for JD Edwards OneWorld?
    Thanks
    Francisco

    Hi Dario,
    BizTalk 2013 R2 (JDE LOB Adapter) is not tested against latest release of JDE EnterpriseOne 9.1.
    It only supports with 8.12 and 9.0 version of JDE.
    Refer the discussion here:
    Integrating BizTalk with JDE EnterpriseOne
    Rachit
    Please mark as answer or vote as helpful if my reply does

  • Wanted 'Using Sap Adapter for Connector Framework' document

    dear friends
    I want to display ABAP reports in iView without Transaction iView.
    From the below forum link
    /community [original link is broken]
    i came to know i can get the help from 'Using Sap Adapter for Connector Framework' document, but the link is giving
    404
    The requested resource is not available.
    can anybody help me to find out the document
    thanx in advance
    please reply me at the earliest.
    kantha

    have a look here - should help:
    http://help.sap.com/saphelp_nw04s/helpdata/en/f2/db49421c0b3c54e10000000a1550b0/frameset.htm
    <a href="http://help.sap.com/saphelp_nw04s/helpdata/en/f2/db49421c0b3c54e10000000a1550b0/frameset.htm">sap help portal</a>
    you may also download PDK, there are some samples in it.
    Best Oliver

  • Using DB Adapter for MS SQL Server 2005  SP in OSB 11g.

    Hi All,
    I have a requirement to create a DB Adapter for MS SQL Server Stored Procedure in JDeveloper and export the Adapter file to OSB 11g. I have Created the Adapter and imported it into OSB 11g successfully. Created the Datasource and Connection pool also in console.
    The problem is while trying to execute the created business Service, I am getting the error as below,
    <Oct 26, 2012 12:20:25 PM IST> <Error> <JCATransport> <BEA-381967> <Invoke JCA outbound service failed with application error, exception: com.bea.wli.sb.transports.jca.JCATransportException: oracle.tip.adapter.sa.api.JCABindingException: oracle.tip.adapter.sa.impl.fw.ext.org.collaxa.thirdparty.apache.wsif.WSIFException: servicebus:/WSDL/Test/CheckAppID/WL_Driver/CheckAppId_WL_Driver [ CheckAppId_WL_Driver_ptt::CheckAppId_WL_Driver(InputParameters,OutputParameters) ] - WSIF JCA Execute of operation 'CheckAppId_WL_Driver' failed due to: Unimplemented string conversion.
    Conversion of JDBC type to String is not supported.
    An attempt was made to convert a Java object to String using an unsupported JDBC type: .
    ; nested exception is:
         BINDING.JCA-11804
    Unimplemented string conversion.
    My XSD is ,
    <element name="InputParameters">
    <complexType>
    <sequence>
    <element name="application_id" type="int" db:index="1" db:type="INT" minOccurs="0" nillable="true"/>
    </sequence>
    </complexType>
    </element>
    <element name="OutputParameters">
    <complexType>
    <sequence>
    <element name="RowSet0" type="db:RowSet0_RowSet" db:type="RowSet0" minOccurs="0" maxOccurs="unbounded" nillable="true"/>
    <element name="RowSet1" type="db:RowSet1_RowSet" db:type="RowSet1" minOccurs="0" maxOccurs="unbounded" nillable="true"/>
    </sequence>
    </complexType>
    </element>
    <complexType name="RowSet1_RowSet">
    <sequence>
    <element name="RowSet1_Row" minOccurs="0" maxOccurs="unbounded">
    <complexType>
    <sequence>
    <element name="cde" type="int" db:type="INT" minOccurs="0" nillable="true"/>
    <element name="msg" db:type="NVARCHAR" minOccurs="0" nillable="true">
    <simpleType>
    <restriction base="string">
    <maxLength value="255"/>
    </restriction>
    </simpleType>
    </element>
    </sequence>
    </complexType>
    </element>
    </sequence>
    </complexType>
    <complexType name="RowSet0_RowSet">
    <sequence>
    <element name="RowSet0_Row" minOccurs="0" maxOccurs="unbounded">
    <complexType>
    <sequence>
    <element name="aaa" type="boolean" db:type="BIT" minOccurs="0" nillable="true"/>
    <element name="bbb" db:type="NVARCHAR" minOccurs="0" nillable="true">
    <simpleType>
    <restriction base="string">
    <maxLength value="10"/>
    </restriction>
    </simpleType>
    </element>
    </sequence>
    </complexType>
    </element>
    </sequence>
    </complexType>
    I don't know why there is a datatype conversion error.
    Help me in resolving this.
    Regards,
    Nataraj R.

    Hi,
    I believe NVARCHAR is an unsupported type...
    The following document lists the supported data types for SQL Server stored procedures and functions... NVARCHAR is not in the list... :-(
    http://docs.oracle.com/cd/E23943_01/integration.1111/e10231/adptr_db.htm#CHDEBEEE
    Hope this helps...
    Cheers,
    Vlad

  • Why not use Redo log for consistent read

    Oracle 11.1.0.7:
    This might be a stupid question.
    As I understand if a select was issued at 7:00 AM and the data that select is going to read has changed at 7:10 AM even then Oracle will return the data that existed at 7:00 AM. And for this Oracle needs the data in Undo segments.
    My question is since redo also has past and current information why can't redo logs be used to retreive that information? Why is undo required when redo already has all that information.

    user628400 wrote:
    Thanks. I get that piece but isn't it the same problem with UNDO? It's written as it expires and there is no guranteee until we specifically ask oracle to gurantee the UNDO retention? I guess I am trying to understand that UNDO was created for effeciency purposes so that there is less performance overhead as compared to reading and writing from redo.And this also you said,
    >
    If data was changed to 100 to 200 wouldn't both the values be there in redo logs. As I understand:
    1. Insert row with value 100 at 7:00 AM and commit. 100 will be writen to redo log
    2. update row to 200 at 8:00 AM and commit. 200 will be written to redo log
    So in essence 100 and 200 both are there in the redo logs and if select was issued at 7:00 data can be read from redo log too. Please correct me if I am understanding it incorrectly.I guess you didnt understand the explaination that I did. Its not the old data that is kept. Its the changed vector of Undo that is kept which is useful to "recover" it when its gone but not useful as such for a select statement. Whereas in an Undo block, the actual value is kept. You must remember that its still a block only which can contain data just like your normal block which may contain a table like EMP. So its not 100,200 but the change vectors of these things which is useful to recover the transaction based on their SCN numbers and would be read in that order as well. And to read the data from Undo, its quite simple for oracle to do so using an Undo block as the transaction table which holds the entry for the transaction, knows where the old data is kept in the Undo Segment. You may have seen XIDSEQ, XIDUSN, XIDSLOT in the tranaction id which are nothing but the information that where the undo data is kept. And to read it, unlke redo, undo plays a good role.
    About the expiry of Undo, you must know that only INACTIVE Undo extents are marked for expiry. The Active Extents which are having an ongoing tranaction records, are never marked for it. You can come back after a lifetime and if undo is there, your old data would be kept safe by oracle since its useful for the multiversioning. Undo Retention is to keep the old data after commit, something which you need not to do if you are on 11g and using Total Recall feature!
    HTH
    Aman....

  • Using Gigabit Adapter for intranet access, wireless for internet access

    I have a PowerMac G5 I have been using with a built-in wireless adapter for a couple of years. I also have a Windows PC with a wireless adapter as well. Both of these access the internet over my AirportExpress connected to a cable modem.
    I wanted to take advantage of the Gigabit adapter in the PowerMac for copying files directly between the computers, so today I installed a Gigabit card in the PC and connected the two through a Gigabit switch.
    Unfortunately, I can't seem to get either the Mac or the PC to get valid IP addresses, let alone talk with each other.
    Any idea what I need to do on the Mac to get it to use the gigabit adapter for intranet traffic? I am guessing whatever I do on the Mac I will need to also do on the PC.
    Thanks!
    Brian

    What you're trying to do is called 'dual homing', and it's not really supported by OS X's automatic network configuration, though 'Internet Sharing' is close.
    I'd avoid it if at all possible. Connect the computers and the cable modem to the Gigabit switch. If the switch doesn't have routing capability, you might need a router also, to provide DHCP and NAT services. This would save you a lot of grief compared to figuring out how to set up the Mac and Windows for dual-home operation.

  • Sample JAVA code using Resource Adapter for RFC Connections

    Hi Java Knowledgeable Ones.
    I have successfully deployed the SAP Netweaver J2ee Engine "Resource Adapter for RFC Connections to ABAP Systems" to my Web Application Server.  Now I need to develop a JAVA application that would utilize this deployed resource adapter.  The resource adapter specifies the SAPClient, UserName, and password.  I am thinking that the JAVA code to invoke this connection would therefore not need to provide this information as it should be available in the resource adapter.
    Do you have sample code that you could send to me showing how to do this?
    Thanks,
    Kevin

    Hi Kevin,
    this is actually no good style! You should not open the connection with the adaptor knowing the password. Usually it should work via a connection that uses only basic rights  and the user has already authenticated and is using his security ticket.
    For security handling see:
    http://help.sap.com/saphelp_nw04/helpdata/en/61/f8bc3d52f39d33e10000000a11405a/frameset.htm
    Regards,
    Benny

  • How to export data using application adapter for EBS?

    my scenario is : there're some external apps need to communicate with EBS,
    and the intermedia layer supposed to be implemented by SOA suite/Fusion adapters.
    my confusion is:
    in oracle integration repository, most of APIs are CUD (create, update, delete) without R (read). but many of our usecase was querying data from EBS.
    my question is : although, considering performance and unpridictable query object and granularity,it's not a good idea using app adatper to querying data from EBS via app api, but if I using db adapter to query data directly, it seems not easy as expected because it need to know the detail table structure and relationship and to build sql by hand.
    so, is there other proper way to get outbound data integration using fusion middleware? additional, I'm not clear about the ODI functionality , is it possible and easy to use ODI perform this task, eg, is ODI has enough API to interact with fusion adapter?

    In the Adapter Wizard look under "Other Interfaces/Custom Objects/PLSQL APIs". There are many many "Get" APIs here. None of these are identified or explained in the Integration Repository but the Trading Community Architecture - Technical Implementation Guide does give a little bit of information about what they do.

  • HT4108 Using av adapter for first time..

    I have bought a av adapter for my iPad 2 but when I tried to connect it it keeps on coming up accessory not supported..can anyone tell me what to do.?

    What do you mean they do not play on your Shuffle? You may need to change playlists in order to hear your podcasts. See page 25 of your iPod's User Guide for more information.
    http://manuals.info.apple.com/en_US/iPod_shuffle_4thgen_User_Guide.pdf
    B-rock

  • Why to use chnage  pointers for  master data idoc why not  the  change idoc

    Hi Gurus,
    I have  one doubt about  Idoc.
    When changes to master  data has to be sent Change pointers are configured and  used. (CDPOS & CDHDR). In case of  the  transaction data change change idoc  is  used as is the case with orders (we  use ORDCHG for  ORDERS message type to send  the  chnage details to a  order which was already sent to other system.
    Why we can't use  change  idoc or  message type whatever, instead of  Chnage pointers in case of  master data or  vice versa in case  of transaction data.
    Your valuable  input  will be rewarded with suitable  points!!
    -B S B.

    Hi,
    It was a good question ... SAP seems never designed the change pointer to handle transactional data IDocs. Only for master data IDocs distribution purposes.
    It may due to volume data ... the transactional data can change many times within a day compare with master data which hardly change or once a while.
    Regards,
    Ferry Lianto

  • Executing xml sql using jdbc adapter for date conversion

    Hi experts,
    I am following the fllowing blog for date format conversion for a jdbc receiver.
    /people/alessandro.berta/blog/2005/10/04/datetime-datatypes-and-oracle-database
    I constructed my graphical mapping to generate the following query
    DateField in receiver structure = TO_DATE('2008-03-24','DD-MON-YY')
    attribute hasQuot = No
    The result that i want is 24-MAR-08
    I am getting the error in communication channel monitoring as does not match string format.
    The database gets successfully updated without this date conversion. But when i try to use this, it give the above error.
    Is there any other configuration to be done to make the adapter execute this statement?
    Regards,
    Shamly

    The issue is solved.
    The SQL statement was wrong.
    The correct version is,( as was specified in the blog ) :-
    DateField in receiver structure = TO_DATE('2008-03-24','YYYY-MM-DD')
    Automatically in the database it is converted to 24-MAR-2008
    Edited by: Shamly MM on Mar 27, 2008 8:01 AM

  • Using XSLT "adapter" for invoking a WS with SOAP-ENC array type param.

    Hello,
    I had to write a BPEL process that calls inside it a web service which has as an input an array parameter and as an output, also an array. I already know that BPEL has limitations regarding using the SOAP-ENC Array type. I tried to rewrite the web service in order to use a literal encoding of the array parameters (using "maxOccurs" attribute), but unfortunately, the OC4J container 9.0.4 that I have to use doesn't allow this. It only allows the SOAP-ENC types for array types.
    I started to write, inside the BPEL process, some "adapters" XSLT transformations before and after the invoking of the web service that uses SOAP-ENC array. The XSLT transformation before the web service invoking will translate the input array parameter defined with no SOAP encoding types (based on "maxOccurs" attribute) into a SOAP-ENC type, as it is expected by the web service. The XSLT transformation after the web service invoking will translate the returned array SOAP-ENC type into a data type defined with no SOAP encoding types (based on "maxOccurs" attribute).
    The approach is pretty hairy, from the XSLT point of view and it introduces a supplementary delay due to the XSLT processing needed, but it works. The only think is that when I build the service, I obtain the following error message:
    [bpelc] [Error] GCDBWebservice?WSDL:30:42: src-resolve.4.2: Error resolving component 'SOAP-ENC:Array'. It was detected that 'SOAP-ENC:Array' is in namespace 'http://schemas.xmlsoap.org/soap/encoding/', but components from this namespace are not referenceable from schema ...
    But in spite of this, the process is built and deployed successfully and I was able to run it from the BPEL console.
    Do you think that this approach could hide some other future problems that I can't see in this moment?
    Thanks,
    Marinel

    Please help me for this.
    I am new to Webservices and SOAP.
    I am facing problem when i am calling a "add" method in the .net webservices with the following code but it gives correct result when i'm calling the "HelloWorld" method present in the webservice.
    I think it will happening because, when i'm going to pass any parameter to the "add method , it does not process it.It will return me 0.
    Please help me in this.
    The code is:
    import java.io.*;
    import java.util.*;
    import java.net.*;
    import org.w3c.dom.*;
    import org.apache.soap.util.xml.*;
    import org.apache.soap.*;
    import org.apache.soap.encoding.*;
    import org.apache.soap.encoding.soapenc.*;
    import org.apache.soap.encoding.literalxml.*;
    import org.apache.soap.rpc.*;
    import org.apache.soap.transport.http.SOAPHTTPConnection;
    import org.apache.soap.transport.*;
    import org.apache.soap.messaging.*;
    import org.apache.xerces.parsers.*;
    import org.apache.xerces.dom.DocumentImpl;
    public class testClient {
    public static void main(String[] args) throws Exception {
    URL url = new URL ("http://Eurotele-it3/webService1/Service1.asmx");
    //Map the Types.
    SOAPMappingRegistry smr = new SOAPMappingRegistry ();
    StringDeserializer sd = new StringDeserializer ();
    smr.mapTypes(Constants.NS_URI_SOAP_ENC,new QName("http://Eurotele-it3/WebService1/Service1","addResult"),Integer.class,null,sd);
    // create the transport and set parameters
    SOAPHTTPConnection st = new SOAPHTTPConnection();
    // build the call.
    Call call = new Call();
    call.setSOAPTransport(st);
    call.setSOAPMappingRegistry(smr);
    call.setTargetObjectURI ("http://Eurotele-it3/WebService1/Service1/add");
    call.setMethodName("add");
    //call.setEncodingStyleURI("http://schemas.xmlsoap.org/soap/encoding/");
    call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
    Vector params = new Vector();
    params.addElement(new Parameter("x",Integer.class,"10",null));
    params.addElement(new Parameter("y",Integer.class,"20",null));
    call.setParams(params);
    Response resp = null;
    try {
    resp = call.invoke (url,"http://Eurotele-it3/WebService1/Service1/add");
    catch (SOAPException e) {
    System.err.println("Caught SOAPException (" + e.getFaultCode () + "): " +e.getMessage ());
    return;
    // check response
    if (resp != null && !resp.generatedFault()) {
    Parameter ret =resp.getReturnValue();
    Object value =ret.getValue();
    System.out.println ("Answer--> " +value );
    else {
    Fault fault = resp.getFault ();
    System.err.println ("Generated fault: ");
    System.out.println (" Fault Code = " + fault.getFaultCode());
    System.out.println (" Fault String = " + fault.getFaultString());
    This is the complete WSDL format:
    <?xml version="1.0" encoding="utf-8" ?>
    - <wsdl:definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://Eurotele-it3/WebService1/Service1" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" targetNamespace="http://Eurotele-it3/WebService1/Service1" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
    - <wsdl:types>
    - <s:schema elementFormDefault="qualified" targetNamespace="http://Eurotele-it3/WebService1/Service1">
    - <s:element name="HelloWorld">
    <s:complexType />
    </s:element>
    - <s:element name="HelloWorldResponse">
    - <s:complexType>
    - <s:sequence>
    <s:element minOccurs="1" maxOccurs="1" name="HelloWorldResult" type="s:int" />
    </s:sequence>
    </s:complexType>
    </s:element>
    - <s:element name="add">
    - <s:complexType>
    - <s:sequence>
    <s:element minOccurs="1" maxOccurs="1" name="x" type="s:int" />
    <s:element minOccurs="1" maxOccurs="1" name="y" type="s:int" />
    </s:sequence>
    </s:complexType>
    </s:element>
    - <s:element name="addResponse">
    - <s:complexType>
    - <s:sequence>
    <s:element minOccurs="1" maxOccurs="1" name="addResult" type="s:int" />
    </s:sequence>
    </s:complexType>
    </s:element>
    </s:schema>
    </wsdl:types>
    - <wsdl:message name="HelloWorldSoapIn">
    <wsdl:part name="parameters" element="tns:HelloWorld" />
    </wsdl:message>
    - <wsdl:message name="HelloWorldSoapOut">
    <wsdl:part name="parameters" element="tns:HelloWorldResponse" />
    </wsdl:message>
    - <wsdl:message name="addSoapIn">
    <wsdl:part name="parameters" element="tns:add" />
    </wsdl:message>
    - <wsdl:message name="addSoapOut">
    <wsdl:part name="parameters" element="tns:addResponse" />
    </wsdl:message>
    - <wsdl:portType name="Service1Soap">
    - <wsdl:operation name="HelloWorld">
    <wsdl:input message="tns:HelloWorldSoapIn" />
    <wsdl:output message="tns:HelloWorldSoapOut" />
    </wsdl:operation>
    - <wsdl:operation name="add">
    <wsdl:input message="tns:addSoapIn" />
    <wsdl:output message="tns:addSoapOut" />
    </wsdl:operation>
    </wsdl:portType>
    - <wsdl:binding name="Service1Soap" type="tns:Service1Soap">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
    - <wsdl:operation name="HelloWorld">
    <soap:operation soapAction="http://Eurotele-it3/WebService1/Service1/HelloWorld" style="document" />
    - <wsdl:input>
    <soap:body use="literal" />
    </wsdl:input>
    - <wsdl:output>
    <soap:body use="literal" />
    </wsdl:output>
    </wsdl:operation>
    - <wsdl:operation name="add">
    <soap:operation soapAction="http://Eurotele-it3/WebService1/Service1/add" style="document" />
    - <wsdl:input>
    <soap:body use="literal" />
    </wsdl:input>
    - <wsdl:output>
    <soap:body use="literal" />
    </wsdl:output>
    </wsdl:operation>
    </wsdl:binding>
    - <wsdl:service name="Service1">
    <documentation xmlns="http://schemas.xmlsoap.org/wsdl/" />
    - <wsdl:port name="Service1Soap" binding="tns:Service1Soap">
    <soap:address location="http://eurotele-it3/webService1/Service1.asmx" />
    </wsdl:port>
    </wsdl:service>
    </wsdl:definitions>

  • Can I use an adapter for USB 2.0 on my SP 6100?

    Hi
    I have a Satellite Pro 6100 and it uses the older USB 1.1 and when I plug anything modern into it it says "this can perform faster". Is there an adapter you know of that I could use?
    Thank you.

    Hi,
    yes there is something like an adapter:
    http://www.transcendusa.com/products/ModDetail.asp?ModNo=32
    Its an Cardbus-to-USB adapter which gives you the ability to run USB 2.0 devices over the cardbus port which is integrated in your Satellite Pro 6100.
    Greetings

  • Why not use Fourier transforms for filtering?

    Are there any resources for constructing filters using discrete Fourier transforms (DFTs)? Or is it as easy as it seems. For example, for lowpass filtering I obtain the DFT of my signal, zero out components above the selected cutoff frequency and then transform back to get my signal minus the high frequency (noise) components. It seems to behave correctly for the signal I've applied it to, but am I missing something. Upsides would appear to be (1) no time delay between the input and output and (2) the filter is sharp with no transition band. Downside is that this method is slower than using impulse filters, but are there other upsides, downsides, or considerations I'm missing?

    The technique of filtering using frequency domain truncation and IFFT is used in specific areas where computation time is essential (to avoid the time domain convolution with a long impulse response), like image processing. However the technique also has some downsides you should be aware of.
    The frequency domain filtering performed on a data record is totally equivalent to a circular convolution made on your time signal with the impulse response of your ideal low-pass filter (typically a sin(x)/x function). The fact what we are doing a circular convolution will result in unwanted artifacts and you'll see some "parts" of the beginning of your signal at the end of the filtered signal and vice-versa.
    Try for example to create a short signal (like a sharp pul
    se) and extend it with zeros. After filtering you will see a sort of "pre-shoot" of your original signal at the very end of your signal. If you then rotate your time signal you'll discover that the signal is actually continuous (in a circular way).
    You can reduce the problem by, for example, adding "some" zeros at the beginning and at the end of your signal (zero-pad) before your filtering operation (before the FFT) and then remove these additional samples again from you filtered signal (after the IFFT).

Maybe you are looking for