1

I am importing legacy data into a CiviCRM instance, and I am stuck. Using Kettle I am able to import the contacts, but the address data isn't being imported. When I use a sample of the data in the CSV I can import it into CiviCRM through import contacts with the same field mapping, without any problems.

Is there a way to debug API output generated by CiviCRM Output in Kettle? Am I missing a necessary address field of something? What would be a minimal example of API code to create contact with a country address field?

EDIT This is the warning I get.

{"is_error":0,"undefined_fields":["country","state_province","city"],"version":3,"count"

Although these fields are avaliable for contacts entity in CiviCRM Output.

2

I use this recipe (manipulate data in Kettle and then API to CiviCRM) regularly. Adding the address is done with the Address API. Are you aware of the API explorer in CiviCRM?

If not, try /civicrm/api/explorer before version 4.6 or use Support/Developer/API Explorer since version 4.7.

This gives you a possibility to "play" with the API explorer to find out what is required. Be careful, it does actually perform the suggested actions :-)

  • I am aware of the API explorer, however, I am not using API directly in Kettle. I am using github.com/amnesty/civicrm-data-integration plug in where I don't have a lot of freedom, nor do I get a lot of debug information. – Marko Aug 29 '17 at 9:13
  • I edited the question – Marko Aug 29 '17 at 9:55
  • 1
    Aaaah I am sorry but I do not know how to work this in the kettle plugin.......I use Kettle and then use a basic CiviCRM migration class – ErikH - CiviCooP Aug 29 '17 at 14:21
  • 1
    As you discovered the CiviCRM API does return the address fields in a get action, but does not use them in a create action....just ran into that issue myself. – ErikH - CiviCooP Aug 29 '17 at 14:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.