code: protected void handleAdapterSuccess(Object pResponse)
          throws ActivityException,ConnectionException,AdapterException {
          if (pResponse==null) return;
          String varname = this.getAttributeValue(RESPONSE_VARIABLE);
          if (varname==null) return;
          String vartype = this.getParameterType(varname);
          if (VariableTranslator.isDocumentReferenceVariable(getPackage(), vartype) && !(pResponse instanceof DocumentReference)) {
              if (pResponse instanceof String) {
                  Object doc = VariableTranslator.realToObject(getPackage(), vartype, (String)pResponse);
                  setParameterValueAsDocument(varname, vartype, doc);
              }
              else {
                  setParameterValueAsDocument(varname, vartype, pResponse);
              }
          } else setParameterValue(varname, pResponse);
      }
docs: The method is invoked when the external system interaction is a success.
  (i.e. the external system responded something, even an error code).
  The method may convert external-system-detected errors into failure
  by throwing an Adapter exception here. Throwing non-retryable
  exception will lead to handleAdapterFailure to be called.
  
  This method is also the place to translate external responses
  into internal format and persist them somewhere, if these are
  needed.
  
  For one way communication protocols, you can leave the default
  which does nothing.
  
  The default method does nothing if the response is null,
  or set the response to the variable specified in RESPONSE_VARIABLE attribute.
  @param pResponse, from the external system
  @throws ActivityException thrown when the handler itself has system problems
  @throws AdapterException thrown when the external system responded but
  the response needs to be handled as an error (for retry or fail the activity)
  @throws TranslationException if the response cannot be translated correctly. This
  is a RuntimeException